使用存储在表中的正则表达式作为SQL查询的条件

Jos*_*osh 4 regex sql postgresql join pattern-matching

我有一个带有正则表达式的表,我需要用它来过滤来自另一个表的行.
就像是:

SELECT *
FROM a
WHERE foo SIMILAR TO '(SELECT regex FROM b)'
Run Code Online (Sandbox Code Playgroud)

显然,这不起作用,因为那不是语法,并且b我需要迭代多行.

我正在使用PostgreSQL 8.3.

Dav*_*ber 5

也许做一个加入会有用吗?例如

SELECT a.*, b.regex
  FROM a JOIN b ON a.foo ~ b.regex
Run Code Online (Sandbox Code Playgroud)

我担心我不熟悉Postgres肯定会说,但这将是SQL中迭代行的普通方式.如果匹配多个正则表达式,它应该多次返回a.foo.