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

时间:2012-03-06 20:43:10

标签: sql regex postgresql join pattern-matching

我有一个带有正则表达式的表,我需要用它来过滤另一个表中的行 类似的东西:

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

显然,这不起作用,因为那不是语法,b中有多行我需要迭代。

我正在使用PostgreSQL 8.3。

1 个答案:

答案 0 :(得分:5)

也许加入会有效吗? E.g。

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

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