我有一个字符串数组和一列,该列可能包含一个或多个这些字符串(按空格分隔),我想获得该列包含其中一个字符串的所有行。由于所有值均包含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>
答案 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)')