Dies ist eine gute Verwendung einer temporären Tabelle.
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);
In den Beispielmustern gibt es keine Möglichkeit col
könnte mit mehr als einem Muster übereinstimmen, sodass Sie sicher sein können, dass Sie jede Zeile von tbl
sehen höchstens einmal im Ergebnis. Aber wenn Ihre Muster so sind, dass col
mehr als einem entsprechen könnte, sollten Sie den DISTINCT
verwenden Abfragemodifikator.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);