sql数据库中的正则表达式

时间:2009-11-22 08:01:43

标签: mysql ruby-on-rails regex

我有一个带有列的数据库表,其中每个条目都是正则表达式。例如,我表格中的行如下所示:

表:email_address_templates email_address:/ .google.com/ email_address:/.reddit.com/ email_address:/ *。ac.uk /

我希望能够搜索此表,并查找特定字符串是否与其中一个正则表达式匹配。

在红宝石中,它看起来像这样:

EmailAddressTemplate.all.select do |ea|
  ea.match "james@something.else.ac.uk"
end

我想知道是否有办法在纯mysql中做类似的事情。

2 个答案:

答案 0 :(得分:2)

select email_address
from email_address_templates
where "james@something.else.ac.uk" RLIKE email_address_templates;

答案 1 :(得分:0)

MySQL可以处理POSIX regular expressions

然而,与Ruby相比,这些都非常有限,因此您必须确保所有内容都兼容。