SQLite - 在多个值上使用 LIKE 运算符

SQLite - Using LIKE operator on multiple values

有没有办法对多个值应用 LIKE 运算符。
例如:

SELECT * FROM table WHERE val LIKE ('%xyz%' OR '%abc%')

您可以使用 returns 您想要匹配的所有值的 CTE 来缩短代码:

WITH cte(val) AS (VALUES ('abc'), ('def'), ('ghi'))
SELECT t.* 
FROM tablename t INNER JOIN cte c
ON t.val LIKE '%' || c.val || '%'

如果使用上述查询得到重复的行,请使用 DISTINCT:

WITH cte(val) AS (VALUES ('abc'), ('def'), ('ghi'))
SELECT DISTINCT t.* 
FROM tablename t INNER JOIN cte c
ON t.val LIKE '%' || c.val || '%'

您可以放置​​多个过滤器:

select
  *
from table

where 1==1
and (    val like '%xyz%'
      or val like '%abc%' )