只有插入过去5分钟的最后一次插入?

时间:2017-06-14 21:58:56

标签: php mysql

我有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

marie - josh - 5:05:00 //只会插入,因为距离上次marie-josh已经过了5分钟。

任何想法?

1 个答案:

答案 0 :(得分:1)

使用INSERT ... SELECTWHERE子句来测试时间是否已过期。

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)
)