如何缩短多个 LIKE
How do I shorten multiple LIKEs
我的查询:
SELECT *
FROM tbl
WHERE (
col LIKE '%this%' AND
col LIKE '%that%' AND
col LIKE '%something else%'
)
我正在搜索的字符串不是按可预测的顺序排列的。
有没有办法不用那些 LIKE
行来写这个?
而不是这个:
WHERE col LIKE '%this%' AND col LIKE '%that%' AND col like '%something else%'
您可以试试这个更快的方法:
WHERE col REGEXP 'this|that|somethingelse'
但请注意,这仅适用于存在特定模式的情况,否则我认为它不能缩短。
编辑:-
正如您更新后的问题所说,如果您正在搜索的字符串不是按可预测的顺序排列的,那么我认为没有任何方法可以缩短您的 LIKE 语句。您必须像现在一样使用它。
我的查询:
SELECT *
FROM tbl
WHERE (
col LIKE '%this%' AND
col LIKE '%that%' AND
col LIKE '%something else%'
)
我正在搜索的字符串不是按可预测的顺序排列的。
有没有办法不用那些 LIKE
行来写这个?
而不是这个:
WHERE col LIKE '%this%' AND col LIKE '%that%' AND col like '%something else%'
您可以试试这个更快的方法:
WHERE col REGEXP 'this|that|somethingelse'
但请注意,这仅适用于存在特定模式的情况,否则我认为它不能缩短。
编辑:-
正如您更新后的问题所说,如果您正在搜索的字符串不是按可预测的顺序排列的,那么我认为没有任何方法可以缩短您的 LIKE 语句。您必须像现在一样使用它。