首页 > 解决方案 > 检查列是否包含多个值之一

问题描述

我有一个字符串数组和一个可能包含一个或多个这些字符串的列(由空格分隔)我想获取该列包含其中一个字符串的所有行。由于这些值都有 3 个字母,因此不能相互包含,我知道我可以写

SELECT * FROM table WHERE 
column LIKE '%val1%' OR 
column LIKE '%val2%' OR 
column LIKE '%val3%' OR 
column LIKE '%val4%'

但是我想知道是否没有更简单的语句,例如column IN ('val1', 'val2', 'val3', 'val4')(这似乎仅在条目等于其中一个值时才有效,但如果仅包含它们则无效)

标签: sql

解决方案


尝试阅读此SQL 中是否有“LIKE”和“IN”的组合?结合 SQL Server 的“LIKE”和“IN”,这将解决你的问题。

第一个链接中的类似内容。

SQL 服务器:

WHERE CONTAINS(t.something, '"bla*" OR "foo*" OR "batz*"')

推荐阅读