我的查询:
SELECT *
FROM tbl
WHERE (
col LIKE '%this%' AND
col LIKE '%that%' AND
col LIKE '%something else%'
)
我搜索的字符串不是可预测的顺序。
有没有办法在没有所有LIKE
行的情况下写这个?
答案 0 :(得分:3)
而不是:
WHERE col LIKE '%this%' AND col LIKE '%that%' AND col like '%something else%'
您可以尝试以更快的方式:
WHERE col REGEXP 'this|that|somethingelse'
但请注意,这只适用于有特定模式的情况,否则我不认为可以缩短。
修改: - 强>
正如您的更新问题所说,如果您搜索的字符串不是可预测的顺序,那么我不认为有任何方法可以缩短您的LIKE语句。您必须以与现在使用它相同的方式使用它。