我有以下查詢:選擇WHERE日期比當前日期更大
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
然而,這將返回不同的結果。
有沒有人有更好的解決方案?
謝謝!
1.如果你只需要'id' - 那麼不要對它進行分組,而是使用'DISTINCT'來代替。 2.另外 - 確保你有'end_dt + id'(按照這個特定的順序)複合索引 – zerkms 2010-09-03 00:21:52