我有以下查询:
SELECT id
FROM auctions
WHERE end_dt > TIME_TO_SEC(TIMEDIFF(end_dt, now())) > '0'
GROUP BY auctions.id
ORDER BY end_dt ASC
LIMIT 15
这真的很慢。但基本上,我们试图通过检查剩余秒数是否大于零来选择即将“结束”的最近15条记录。
我认为我过度复杂了,并认为我可以这样做:
SELECT id
FROM auctions
WHERE end_dt > now()
GROUP BY auctions.id
ORDER BY end_dt ASC
LIMIT 15
但是,这会返回不同的结果。
有没有人有更好的解决方案?
谢谢!
答案 0 :(得分:2)
尝试
WHERE `end_dt` BETWEEN DATE_SUB(NOW() , INTERVAL 15 MINUTE)
AND NOW()
来源:MySQL Select rows where timestamp column between now and 10 minutes ago
答案 1 :(得分:0)
好吧,通过做end_dt>结果是正确的。 now() - 插入了很多记录,它甚至在重试之间的几秒钟内也发生了变化..