假设我这样做:
SELECT * FROM table WHERE field2 = '2019@162440' OR field2 LIKE '%%2019@%%';
在这种情况下,它将尝试执行 BOTHfield2 = '2019@162440'
和field2 LIKE '%%2019@%%'
条件的匹配(即,它将搜索与这些条件匹配的行,因此即使它已经找到了匹配的行,它也需要更多的计算能力来尝试找到匹配这两个条件的行field2 = '2019@162440'
)
field2 LIKE '%%2019@%%'
有没有办法通过将查询改组为仅在条件field2 = '2019@162440'
不匹配任何内容 时才尝试执行来指示 mysql,从而使查询变得更有效
IE。field2 LIKE '%%2019@%%'
我本质上希望 mysql仅在没有行匹配时才尝试查找匹配的行field2 = '2019@162440'
。如果field2 = '2019@162440'
找到匹配的行,请不要尝试匹配field2 LIKE '%%2019@%%'
此外,没有子查询