我有一个包含电子邮件表的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 '^[^ @]+@([^ @.]+.)+[^ @.]+$';
让我知道它有效。
感谢所有这些,这是为我工作的解决方案:
电子邮件的地方 !~ '^[^ @]+@([^ @.]+.)+[^ @.]+$'