在mysql查询中调用NOW()等函数的次数

时间:2012-01-05 07:29:35

标签: mysql

请考虑以下示例查询

SELECT * FROM subscriber WHERE subscription_date>DATE(NOW()-INTERVAL 10 DAY)

我的问题是,如果订阅者表中有100条记录,那么将调用函数NOW()DATE()多少次?是否会对这些函数进行评估以便与每一行进行比较,还是在查询开始时只对它们进行一次评估?

1 个答案:

答案 0 :(得分:1)

它将被调用一次。 MySQL首先尝试评估WHERE子句,因此在内部将其转换为静态值。

BTW:通过使用NOW(),您的查询将不会缓存在MySQL中,因此当几秒钟后再次调用此查询时,它必须再次执行。所以最好使用DATE('2012-01-05 04:00:00'-INTERVAL 10 DAY)