重複の可能性:
SQLLIKEと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);
上記のクエリを変更して、やりたいことができる方法はありますか?(最後のクエリ)