我有一个包含电子邮件字段和30K记录的表格。
我发现许多用户输入了无效的电子邮件地址,例如:
<,@@
等......
PostgreSQL中是否有办法运行查询,显示所有无效的电子邮件地址?我知道如何用正则表达式
来做到这一点[a-z,A-z,0-9,'.']*@[a-z,A-z,0-9]*.com
[a-z,A-z,0-9,'.']*@[a-z,A-z,0-9]*.xx|xxx.xx
代表.co.uk
或.org.it
如何在查询中完成此操作? 我只想获得所有无效地址的清单,以便我可以要求修复他们的记录。
答案 0 :(得分:2)
您可以使用PostgreSQL的POSIX regexp functionality:
在where子句中进行具有以下条件的查询(email
是您的电子邮件列):
where email !~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'
或者正则表达式适用于你。