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);