Questo è un buon uso di una tabella temporanea.
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);
Nei modelli di esempio, non c'è modo col
potrebbe corrispondere a più di un pattern, quindi puoi essere certo di vedere ogni riga di tbl
al massimo una volta nel risultato. Ma se i tuoi schemi sono tali che col
potrebbe corrispondere a più di uno, dovresti usare il DISTINCT
modificatore di query.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);