检查列是否包含多个值之一

时间:2019-12-11 08:23:00

标签: sql

我有一个字符串数组和一列,该列可能包含一个或多个这些字符串(按空格分隔),我想获得该列包含其中一个字符串的所有行。由于所有值均包含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')(该条目似乎仅在条目等于其中一个值时才起作用,但如果它仅包含它们则不起作用)< / p>

2 个答案:

答案 0 :(得分:1)

尝试阅读此Is there a combination of "LIKE" and "IN" in SQL?Combining "LIKE" and "IN" for SQL Server,这将解决您的问题。

从第一个链接开始这样的事情。

SQL Server:

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

答案 1 :(得分:0)

第一个oracle您可以使用正则表达式

select  * 
from    table 
where   regexp_like (column,'val(1|2|3|4)')