Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否将查询与SQL中的正则表达式匹配?_Sql_Regex_Pattern Matching_Database - Fatal编程技术网

是否将查询与SQL中的正则表达式匹配?

是否将查询与SQL中的正则表达式匹配?,sql,regex,pattern-matching,database,Sql,Regex,Pattern Matching,Database,我试图找到一种方法,将查询与数据库中的正则表达式相匹配。据我所知,虽然我不是专家,但大多数数据库管理系统(如MySQL)都有搜索功能,但您只能执行以下操作: 查找第1列中与我的查询中的正则表达式匹配的所有行 我想做的恰恰相反,即: 查找第1列中的所有行,以便第1列中的正则表达式与我的查询匹配 简单示例-假设我有一个这样结构的数据库: +----------+-----------+ | Column 1 | Column 2 | +----------+-----------+ | [a

我试图找到一种方法,将查询与数据库中的正则表达式相匹配。据我所知,虽然我不是专家,但大多数数据库管理系统(如MySQL)都有搜索功能,但您只能执行以下操作:

查找第1列中与我的查询中的正则表达式匹配的所有行

我想做的恰恰相反,即:

查找第1列中的所有行,以便第1列中的正则表达式与我的查询匹配

简单示例-假设我有一个这样结构的数据库:

+----------+-----------+  
| Column 1 |  Column 2 |
+----------+-----------+
|  [a-z]+  |  whatever |
+----------+-----------+
|  [\w]+   |  whatever |
+----------+-----------+
|  [0-9]+  |  whatever |
+----------+-----------+
因此,如果我查询dog,我希望它返回带有[a-z]+和[\w]+的行,如果我查询123,它将返回带有[0-9]+的行


如果您知道在SQL中执行此操作的方法,请提供简短的SELECT示例或示例链接。

对于MySQL,也可能是其他数据库:

SELECT * FROM table WHERE "dog" RLIKE(`Column 1`)
在这方面:

SELECT * FROM table WHERE 'dog' ~ "Column 1";

Oracle直到10g才支持regex,SQL Server在v2005中增加了支持。据我所知,没有ANSI标准语法-regex是,但用于执行此操作的函数在供应商之间会有所不同。太棒了!感谢您的快速回复。只是一个快速更新-我发现只有在MySQL中这样构造查询时,它才起作用:从table WHERE dog RLIKEColumn 1中选择*在Rails活动记录查询界面中,您将如何执行此操作?您可能需要将此作为单独的问题发布。