我有visit table with id, user, visit, date fields
。向卖家展示访问某些产品的最后消费者。
INSERT into visits (user, visit, data) VALUES (?,?,now());
例如,user='marie'
访问user 'josh'
的产品。
用户=玛丽
访问=约什
数据=日期时间
我的问题是,如果用户多次访问此页面,它会多次插入相同的内容。玛丽,约什,约会。
我只想在距离最后一次插入过去5分钟时插入(marie,josh)。如果任何用户不同,它可以第一次正常插入,在此之后,计数5分钟再次插入相同的东西。
marie - josh - 5:00:00
marie - chloe - 5:00:10
chloe - josh - 5:00:20
任何想法?
答案 0 :(得分:1)
使用INSERT ... SELECT
和WHERE
子句来测试时间是否已过期。
INSERT INTO visits (user, visit, data)
SELECT ?, ?, NOW()
WHERE NOT EXISTS (
SELECT 1
FROM visits
WHERE user = ? AND visit = ? AND data >= DATE_SUB(NOW(), INTERVAL 5 MINUTE)
)