-2
に問い合わせ条件は今あるとき()関数を使用することはできません背景:私の場合はインデックスさvarchar列は、MySQL
、MySQLは5.7です。
A
という名前のテーブルと、date_str
という名前のインデックス付きの列があります。 date_str
のデータは2017-01-16 00:00:00
のようになります。
問題:
私は、インデックスがこのようなselect * from A where date_str > now()
など範囲クエリで使用することはできませんことを発見しました。
ただし、クエリ条件が別の関数right()
の場合はインデックスが使用されます。
つまり、なぜ誰もが知っていますか?ありがとう。
日付は、文字列ではなく、日付、日時、またはタイムスタンプフィールドに格納します。 – Shadow
クエリプランを共有できますか?レコードが少ない場合や、列date_strの値が重複している場合は、索引を使用できません。 –
私は平らなクエリを追加しました。ありがとう@AnilAgrawal – biaobiaoqi