我在约会时使用between
,因此执行此操作的速度较慢:
select sum(amount) from my_table
where pur_date between DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 YEAR), INTERVAL 1 DAY)
and DATE_SUB(CURDATE(), INTERVAL 2 DAY);
或者这样做更快:
set @startdt = (select DATE_SUB(DATE_SUB(CURDATE(), INTERVAL 1 YEAR), INTERVAL 1 DAY));
set @enddt = (select DATE_SUB(CURDATE(), INTERVAL 2 DAY));
select sum(amount) from my_table where pur_date between @startdt and @enddt;
或者它没有什么区别?我问的原因是,如果函数直接放在查询中而不是将它们设置为变量,我不确定函数是否会为每一行运行。
我希望你能帮我解决这个问题!
答案 0 :(得分:0)
第一个更快。
更多是select语句,执行程序更加迟钝。