私がこれをするとします:
SELECT * FROM table WHERE field2 = '2019@162440' OR field2 LIKE '%%2019@%%';
この場合、両方field2 = '2019@162440'
とfield2 LIKE '%%2019@%%'
条件の一致を実行しようとします (つまり、これらの条件に一致する行を検索するため、一致する行が既に見つかった場合でも、両方の条件に一致する行を見つけようとすると、さらに計算能力が必要になりますfield2 = '2019@162440'
) 。
field2 LIKE '%%2019@%%'
クエリがより効率的になるように、条件field2 = '2019@162440'
が何にも一致しない 場合にのみ実行を試みるようにクエリを再構成することにより、mysqlに指示する方法はありますか?
すなわち。field2 LIKE '%%2019@%%'
基本的に、一致する行がない場合にのみ、mysql が一致する行を見つけようとするようにしますfield2 = '2019@162440'
。一致する行field2 = '2019@162440'
が見つかった場合、一致しようとしないでくださいfield2 LIKE '%%2019@%%'
また、サブクエリはありません