如何在不重复计算的情况下执行SQL
我有以下代码:
SELECT *
FROM tier
WHERE
TIMESTAMPDIFF( HOUR, now(), FROM_UNIXTIME(expireAt) ) < 72
AND TIMESTAMPDIFF( HOUR, now(), FROM_UNIXTIME(expireAt) ) > 0
你可以看到,有TIMESTAMPDIFF两次计算。
有没有办法只执行一次这个计算?
回答
之间可以使用。由于 between 包括范围边界,您需要使用 1 和 71 而不是 0 和 72。
SELECT *
FROM tier
WHERE
TIMESTAMPDIFF( HOUR, now(), FROM_UNIXTIME(expireAt) ) between 1 and 71