有人能帮我吗?我对以下功能有疑问;我可以为此创建一个虚拟列吗?
select as1.col,as1.col2,as1.col3 from
analytics.adjusted_sale_velocity
where
date(as1.created_datetime)=(
select
max(
date(created_datetime)
)
from
analytics.adjusted_sale_velocity
)
MySQL优化器不会在WHERE子句中的列被函数date
包装后使用索引。
您的查询可能写得有点不同:
select as1.col,
as1.col2,
as1.col3
from adjusted_sale_velocity a
inner join ( select max(created_datetime) as created_datetime
from adjusted_sale_velocity
) as max_dt on left(a.created_datetime,10) = left(max_dt.created_datetime,10) ;
试着让我知道它是否更快。