Това е добро използване на временна таблица.
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);
В примерните модели няма начин col
може да съответства на повече от един шаблон, така че можете да сте сигурни, че ще видите всеки ред от tbl
най-много веднъж в резултата. Но ако вашите модели са такива, че col
може да съответства на повече от един, трябва да използвате DISTINCT
модификатор на заявка.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);