1

我在下面有一个查询,用于检索在给定时间(以小时为单位)内未更新的记录并按经过时间排序:

SELECT TABLE.Key, TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted, CURRENT_TIMESTAMP)
FROM TABLE WHERE TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted,
CURRENT_TIMESTAMP) <= 7 ORDER BY TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted,
CURRENT_TIMESTAMP);

如您所见,它多次调用 TIMESTAMPDIFF,效率不高,因为所有这些调用都会导致无用的 SQL 计算。

我想知道是否有办法重用计算以便只处理一次?

非常感谢你的帮助。

弗洛朗

4

1 回答 1

0
SELECT 
    t.Key, t.dif
FROM (
        SELECT key, TIMESTAMPDIFF(HOUR, TABLE.Date_last_consulted, CURRENT_TIMESTAMP) dif
        FROM TABLE
     ) t
WHERE 
    t.dif <= 7 
ORDER BY 
    t.dif
于 2012-06-24T16:51:18.360 回答