我有一个庞大的用户数据库,有很多垃圾邮件电子邮件帐户,喜欢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函数,但它很难用"dot".我尝试过很多东西:
SELECT * FROM users WHERE email REGEXP '([[...]]){2,}'SELECT * FROM users WHERE email REGEXP '(\\.){2,}'SELECT * FROM users WHERE email REGEXP '(.*)[[...]]{2}(.*)'每一个都失败了.
有任何想法吗 ?
pon*_*cha 14
这个怎么样?
SELECT * FROM users WHERE email REGEXP '[.].*[.].*@';
Run Code Online (Sandbox Code Playgroud)
这会在@之前搜索两个(或更多)点(这仍然允许多点域名,如.co.uk等).
但是,你应该考虑一些用户可能真的在他们的用户名中有多个点,这仍然是合法的.