Madhu Madhu - 3 months ago 7
SQL Question

How can i introduce multiple conditions in LIKE operator

I want to write an SQL statement like below:

select * from tbl where col like ('ABC%','XYZ%','PQR%');


I know it can be done using
OR
. But I want to know is there any better solution.

Answer

Here is an alternative way:

select * from tbl where col like 'ABC%'
union
select * from tbl where col like 'XYZ%'
union
select * from tbl where col like 'PQR%';

Here is the test code to verify:

create table tbl (col varchar(255));
insert into tbl (col) values ('ABCDEFG'), ('HIJKLMNO'), ('PQRSTUVW'), ('XYZ');
select * from tbl where col like 'ABC%'
union
select * from tbl where col like 'XYZ%'
union
select * from tbl where col like 'PQR%';
+----------+
| col      |
+----------+
| ABCDEFG  |
| XYZ      |
| PQRSTUVW |
+----------+
3 rows in set (0.00 sec)