Sql 检查列是否包含多个值中的一个

Sql 检查列是否包含多个值中的一个,sql,Sql,我有一个字符串数组和一个列,其中可能包含一个或多个字符串。按空格进行操作。我想获取此列包含其中一个字符串的所有行。由于这些值都有3个字母,因此不能相互包含,我知道我可以直接写 SELECT * FROM table WHERE column LIKE '%val1%' OR column LIKE '%val2%' OR column LIKE '%val3%' OR column LIKE '%val4%' 但我想知道是否有一个更简单的语句,比如“val1”、“val2”、“val3

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

SELECT * FROM table WHERE 
column LIKE '%val1%' OR 
column LIKE '%val2%' OR 
column LIKE '%val3%' OR 
column LIKE '%val4%'
但我想知道是否有一个更简单的语句,比如“val1”、“val2”、“val3”、“val4”中的列。这个语句似乎只在条目等于其中一个值时才起作用,但如果它只包含这些值,就不起作用了。试着读一下,这将解决您的问题

第一个链接中的类似内容

SQL Server:


你可以使用正则表达式吗

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

这回答了你的问题吗?你用的是什么产品?SQL只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。按空格分隔可能表示数据库设计错误,这些字符串实际上应该转换为具有一对多关系的第二个表中的行
select  * 
from    table 
where   regexp_like (column,'val(1|2|3|4)')