可能重复:如何从日期时间列中选择日期?
但是接受答案的问题是它将执行全表扫描。
我想做这样的事情:
UPDATE records SET earnings=(SELECT SUM(rate)
FROM leads
WHERE records.user_id=leads.user_id
AND DATE(leads.datetime)=records.date)
注意最后一部分:DATE(leads.datetime)=records.date
. 这正是它需要做的,但它必须扫描每一行。一些用户有数千个潜在客户,因此可能需要一段时间。
leads
桌子上有一个INDEX
, 。user_id
datetime
我知道您可以使用区间函数并执行类似WHERE datetime BETWEEN date AND interval + days
或类似的操作。
最有效和最准确的方法是什么?