Используйте регулярные выражения, хранящиеся в таблице, в качестве критерия для запроса SQL - PullRequest
4 голосов
/ 07 марта 2012

У меня есть таблица с регулярными выражениями, которую мне нужно использовать для фильтрации строк из другой таблицы.
Что-то вроде:

SELECT *
FROM a
WHERE foo SIMILAR TO '(SELECT regex FROM b)'

Очевидно, что это не сработает, потому что это не синтаксис, и в b есть несколько строк, которые мне нужно перебрать.

Я использую PostgreSQL 8.3.

1 Ответ

5 голосов
/ 07 марта 2012

Возможно, объединение будет работать? Э.Г.

SELECT a.*, b.regex
  FROM a JOIN b ON a.foo ~ b.regex

Боюсь, я недостаточно знаком с Postgres, чтобы сказать наверняка, но в SQL это был бы обычный способ итерации по строкам. Он должен возвращать a.foo несколько раз, если сопоставлено несколько регулярных выражений.

...