Toto je dobré využití dočasné tabulky.
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);
V příkladech vzorů neexistuje žádný způsob col
může odpovídat více než jednomu vzoru, takže si můžete být jisti, že uvidíte každý řádek tbl
maximálně jednou ve výsledku. Ale pokud jsou vaše vzory takové, že col
může odpovídat více než jednomu, měli byste použít DISTINCT
modifikátor dotazu.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);