将正则表达式模式转换为sql



我有一个包含电子邮件表的SQL数据库。我想选择所有的电子邮件,从正则表达式模式的字符:

^[^ @]+@([^ @.]+\.)+[^ @.]+$

我正试着写请求,但我有错误。有人能帮我吗?

您不需要为您指定的模式使用正则表达式。您可以使用like:

where email like '%@%.%' and
email not like '%@%@%' and    -- only one @
email not like '%.%.%' and    -- only one .
email not like '% %'          -- no space

正则表达式的使用取决于你正在使用的数据库(但like是SQL,所以它应该在所有数据库中工作)。当然,如果您的(未指定的)数据库支持正则表达式,您仍然可以使用它们。但是,如果您这样做,您可能需要做一些研究,因为有更好的正则表达式用于电子邮件匹配。

下面是在SQL查询中使用RegEx的示例

SELECT * from table WHERE email REGEXP '^[^ @]+@([^ @.]+.)+[^ @.]+$';

让我知道它有效。

感谢所有这些,这是为我工作的解决方案:

电子邮件的地方 !~ '^[^ @]+@([^ @.]+.)+[^ @.]+$'

相关内容

  • 没有找到相关文章

最新更新