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

标签 sql regex postgresql join pattern-matching

我有一个包含正则表达式的表,我需要用它来过滤来自另一个表的行。
像这样的东西:

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

显然,这行不通,因为这不是语法,而且 b 中有多行我需要遍历。

我正在使用 PostgreSQL 8.3。

最佳答案

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

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

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

关于sql - 使用存储在表中的正则表达式作为 SQL 查询的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9591554/

相关文章:

regex - Perl 中的递归成对大括号匹配

java - 如何在 java 中的字符串中找到 '|' 模式?

ruby-on-rails - Rails API 中 PostgreSQL 数据库连接启动缓慢且频繁

c# - 是否可以通过 LINQ to SQL 使用/访问标量函数?

mysql - 数据库设计难点

c# - 如何使用正则表达式在 <span> 和 </span> 以及 </span> 和 <span> 之间创建任何内容的数组?

postgresql - Rails 应用程序中的 Heroku PostgreSQL GROUP_BY 错误

mysql - 如何在 MySQL 中将默认 Null 更改为 NOT NULL

SQL删除表时无法取回存储空间

bash - 用于在 postgres 中创建带有密码的用户的 shell 脚本失败并带有引号