Mysql:如何在查询中重用计算

Mysql:如何在查询中重用计算,mysql,syntax,label,Mysql,Syntax,Label,我在下面有一个查询,用于检索给定时间内未更新的记录(以小时为单位),并按运行时间排序: 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, TA

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

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计算

我想知道是否有一种方法可以重复使用这些计算,从而只处理一次

非常感谢你的帮助


弗洛伦特

我希望你不介意我编辑了你的问题,我想这篇标题和正文会引起更多的关注。非常感谢你花时间重写它。我的英语不是很好:非常感谢,我会试试这个!当然,我明天可以测试一下。您使用的请求的结构非常有趣,为了理解,我将查看文档。谢谢。致以最诚挚的问候。事实上,我已经能够测试它,它就像一个魅力。我会记住如何命名子查询并访问其结果,这非常有用。顺致敬意,
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