显示MysQl行小于或等于15分钟前时间戳
问题描述:
我有一个简单的脚本,每30秒查询一次数据库以获取setInterval()的最新通知。如何只显示小于或等于15分钟前的行?我不想展示超过15分钟的任何东西。现在我正在使用少于24小时的东西,这很好,但不够精确。显示MysQl行小于或等于15分钟前时间戳
CURENT查询:
SELECT * FROM notifications n
JOIN employees e ON n.fromEmployee_id=e.employee_id
WHERE n.lastUpdate >= DATE_SUB(NOW(), INTERVAL 1 DAY)
ORDER BY n.id DESC LIMIT 1
答
只要改变间隔:
SELECT *
FROM notifications n JOIN
employees e
ON n.fromEmployee_id = e.employee_id
WHERE n.lastUpdate >= DATE_SUB(NOW(), INTERVAL 15 minute)
ORDER BY n.id DESC
LIMIT 1;
你可能不希望LIMIT 1
如果你希望所有的行。
答
最有效的方法是比较你的时间戳(只有时间戳,而不使用它的任何函数)可作为常数计算每一行的表达式,这样mysql可以使用定义在你的时间戳列上的索引。
SELECT * FROM myTable
WHERE lastupdated >= NOW() - INTERVAL 15 MINUTE
好的。我不知道它是那么简单。谢谢! –