0

異なる関数から両方のクエリを実行すると、同じ結果が得られます。どのクエリが最適化されているか、または論理的に正しいかを知りたかっただけです (以下のクエリ 1 と 2 を参照してください)。

に関する月次データを取得しますsale.purchase_date

クエリ 1

SELECT sales.purchase_date FROM `sales` 
WHERE sales.purchase_date LIKE  '2012-06-%';

クエリ 2

SELECT sales.purchase_date FROM `sales` 
WHERE MONTH(sales.purchase_date) = '6' AND YEAR(sales.purchase_date) = '2012';
4

1 に答える 1

0

purchase_date行が含まれ、インデックスを使用できないかどうかを調べる必要があるため、どちらもテーブル スキャンを実行する必要があります。BETWEENの任意のインデックスを利用できるように、クエリを使用することをお勧めしますpurchase_date

WHERE sales.purchase_date BETWEEN '2012-06-01' AND '2012-06-30'
于 2012-06-07T11:16:23.910 に答える