MySQL / Regexp:部分正则表达式匹配

时间:2013-08-27 12:51:56

标签: mysql regex

我在MySQL表中有一堆正则表达式。我想知道给定的字符串是否与任何正则表达式的一部分匹配。

例如:

+----+--------------------------------+
| id | regexps                        |
+----+--------------------------------+
| 1  | foo-[0-9]*\.example\.com       |
| 2  | (bar|tux)-[0-9]*\.example\.com |
+----+--------------------------------+

regexps属性属于VARCHAR类型)

foo-11.example.com匹配第一个正则表达式。

我想要一个MySQL查询,它返回给定字符串为foo-11

的第一行

1 个答案:

答案 0 :(得分:0)

这应该在MySql上执行:

select * from table t where 'foo-11.example.com' rlike t.data;

PostGreSQL还有其他方法。这是我引用此链接的链接:

  1. http://www.tutorialspoint.com/mysql/mysql-regexps.htm
  2. Match a Query to a Regular Expression in SQL?
  3. PS:使用*虽然很棘手!