/ / Use expresiones regulares almacenadas en una tabla como criterios para una consulta SQL - sql, regex, postgresql, join, pattern-matching

Utilice expresiones regulares almacenadas en una tabla como criterios para una consulta SQL: sql, regex, postgresql, join, pattern-matching

Tengo una tabla con expresiones regulares que necesito usar para filtrar filas de otra tabla.
Algo como:

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

Obviamente, eso no funciona porque no es la sintaxis y hay varias filas en b que necesito para iterar

Estoy usando PostgreSQL 8.3.

Respuestas

5 para la respuesta № 1

Tal vez hacer una unión funcionaría? P.ej.

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

Me temo que no estoy lo suficientemente familiarizado con Postgrespara decirlo con certeza, pero esta sería la forma ordinaria en SQL de iterar sobre filas. Se debe devolver a.foo varias veces si se combinan varias expresiones regulares.