【问题标题】:Use regex stored in a table as criteria for an SQL query使用存储在表中的正则表达式作为 SQL 查询的条件
【发布时间】:2012-03-06 20:43:09
【问题描述】:

我有一个带有正则表达式的表,我需要使用它来过滤另一个表中的行。
比如:

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

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

我使用的是 PostgreSQL 8.3。

【问题讨论】:

  • 发布一些示例数据 n 所需的 o/p
  • 您是否知道SIMILAR TO 使用正则表达式,而是使用它自己独特的一组模式——在内部重写为正则表达式?我最近写了一个comprehensive answer about that on dba.SE
  • 你知道pg9.2已经发布快一年了吧?

标签: sql regex postgresql join pattern-matching


【解决方案1】:

也许做一个连接会起作用?例如

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-20
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多