To jest dobre wykorzystanie tabeli tymczasowej.
CREATE TEMPORARY TABLE patterns (
pattern VARCHAR(20)
);
INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');
SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);
W przykładowych wzorcach nie ma mowy o col może pasować do więcej niż jednego wzorca, więc możesz być pewien, że zobaczysz każdy wiersz tbl najwyżej raz w wyniku. Ale jeśli twoje wzorce są takie, że col może pasować do więcej niż jednego, powinieneś użyć DISTINCT modyfikator zapytania.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);