可能重复:
同时使用 SQL LIKE 和 IN
我有如下表。
create table tab1 (
id int, col1 varchar(20), col2 varchar(20),
col3 varchar(20), col4 varchar(20)
);
我里面有价值观
insert into tab1 values
(1,'column011','column012','column013','column014'),
(2,'column021','column022','column023','column024'),
(3,'column031','column032','column033','column034'),
(4,'column041','column042','column043','column044')
;
早些时候我有要求,查找行,其中任何列都有数据为column011
. 所以我执行了下面的查询并得到了我想要的。
select * from tab1
WHERE 'column011' in (col1,col2,col3,col4);
我在上面使用过,CONCAT_WS
因为它是简单的查询。
select * from tab1
where CONCAT_WS('-', col1, col2, col3, col4) LIKE '%column011%';
现在我得到要求,查找行,其中任何列包含数据为mn01
. 所以我执行了下面的查询并得到了我想要的。
select * from tab1
where CONCAT_WS('-', col1, col2, col3, col4) LIKE '%mn01%';
但是我想通过使用简单查询(第一个查询)来完成这项工作。所以我尝试了下面。
select * from tab1
WHERE '%mn01%' in (col1,col2,col3,col4);
有什么方法可以通过修改上面的查询来做我想做的事吗?(最后查询)