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%' )
有没有办法对多个值应用 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%' )