SQLite-对多个值使用LIKE运算符



是否有方法将LIKE运算符应用于多个值
例如:

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

您可以使用返回所有想要匹配的值的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 || '%'

从3.36.0版起,您可以使用REGEXP。

在这种情况下,它将是

SELECT * FROM table WHERE val REGEXP '.*(xyz|abc).*'

您可以放置多个过滤器:

select
*
from table
where 1==1
and (    val like '%xyz%'
or val like '%abc%' )

相关内容

  • 没有找到相关文章

最新更新