如何缩短多个 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 语句。您必须像现在一样使用它。