仅当记录的时间戳超过5分钟时才插入MySQL
我试图在我的查询中实现的是: 用户可以将他们的手机号码存储在我的数据库中,如果插入了相同的手机号码,它将检查是否已过5分钟,如果有,它将存储相同号码的另一条记录,如果没有,它将不存储该记录。我的数据库中的列是:Name、contact和datetimestamp 我玩过的和写过的:仅当记录的时间戳超过5分钟时才插入MySQL,mysql,Mysql,我试图在我的查询中实现的是: 用户可以将他们的手机号码存储在我的数据库中,如果插入了相同的手机号码,它将检查是否已过5分钟,如果有,它将存储相同号码的另一条记录,如果没有,它将不存储该记录。我的数据库中的列是:Name、contact和datetimestamp 我玩过的和写过的: INSERT INTO users (name, contact) SELECT * FROM (SELECT 'test', '123') AS 1 WHERE NOT EXISTS ( SELECT time F
INSERT INTO users (name, contact) SELECT * FROM (SELECT 'test', '123') AS 1 WHERE NOT EXISTS ( SELECT time FROM users WHERE time <= now() + INTERVAL 5 MINUTE ) LIMIT 1
这将始终无法将记录保存到数据库中,因为时间总是考虑以下因素。。。我用了1分钟,因为测试更快
drop table if exists my_table;
create table my_table
( id serial primary key
, number varchar(12) not null
, dt datetime not null
);
insert into my_table
select null
, '1111'
, now()
from (select 1)x
left
join my_table y
on y.number = '1111'
and y.dt >= now() - interval 1 minute
where y.id is null
limit 1;
你的意思是它不允许在重复号码的5分钟内存储一个号码吗?相同的号码不能在这5分钟内存储,如果这5分钟过去了,那么相同的号码可以再次存储是我试图实现的目标。此外,如果使用不同的编号,则会将其插入数据库,因为不存在此不同编号的现有记录。