/ / Użyj wyrażeń regularnych przechowywanych w tabeli jako kryteriów zapytania SQL - sql, regex, postgresql, join, dopasowywanie wzorców

Użyj wyrażenia regularnego zapisanego w tabeli jako kryterium zapytania SQL - sql, regex, postgresql, join, dopasowywanie do wzorca

Mam tabelę z wyrażeniami regularnymi, których muszę używać do filtrowania wierszy z innej tabeli.
Coś jak:

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

Oczywiście to nie działa, ponieważ nie jest to składnia i jest w niej wiele wierszy b przez co muszę iterować.

Używam PostgreSQL 8.3.

Odpowiedzi:

5 dla odpowiedzi № 1

Być może wykonanie połączenia byłoby skuteczne? Na przykład.

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

Obawiam się, że nie znam się wystarczająco dobrze na Postgresiepowiedzieć na pewno, ale byłby to zwykły sposób w SQL iteracji po wierszach. Powinien zwracać a.foo wiele razy, jeśli dopasowanych jest wiele wyrażeń regularnych.