我有一个很大的用户数据库,里面有很多垃圾邮件帐户,比如 j.o.hnha.r.rold.t.ho.mp.so.n.j.u.n.io.r@gmail.com
或 o.f.vst.p.rqlsy.j@gmail.com
我想通过一个查询删除它们(而不是执行解析所有数据库的 php 脚本)。
我看到 MySQL 有一个 REGEXP 函数,但是很难用“点”来使用它。我尝试了很多事情,例如:
SELECT * FROM users WHERE email REGEXP '([[...]]){2,}'
SELECT * FROM users WHERE email REGEXP '(\\.){2,}'
SELECT * FROM users WHERE email REGEXP '(.*)[[...]]{2}(.*)'
每一个都失败了。
有什么想法吗?
最佳答案
这个怎么样?
SELECT * FROM users WHERE email REGEXP '[.].*[.].*@';
这会在 @ 之前搜索两个(或更多)点(这仍然允许多点域名,如 .co.uk 等)。
但是,您应该考虑到某些用户的用户名中可能确实也有多个点的可能性,这仍然是合法的。
关于mysql - 如何使用 REGEXP MySQL 函数查找超过 2 个点的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9762928/