Detta är en bra användning av en tillfällig tabell.
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);
I exempelmönstren finns det inget sätt col
kan matcha mer än ett mönster, så du kan vara säker på att du ser varje rad av tbl
högst en gång i resultatet. Men om dina mönster är sådana att col
kan matcha mer än en, bör du använda DISTINCT
frågemodifierare.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);