Kann diese where-Klausel optimiert werden?
P粉757640504
P粉757640504 2024-04-01 16:12:46
0
1
399

Kann mir jemand helfen, dieses Problem zu lösen? Ich habe eine Frage zur folgenden Funktion: Kann ich dafür eine virtuelle Spalte erstellen?

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
      )

P粉757640504
P粉757640504

Antworte allen(1)
P粉166675898

一旦 WHERE 子句中的列用函数(在您的情况下为 date)包装,MySQL 优化器将不会使用索引。

您的查询可能会略有不同:

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) ;

尝试让我知道它是否更快。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage