仅使用 sql 查询就可以实现以下结果,还是我需要创建一个 php 例程?
我有一个具有 gmail 地址的成员数据库,其中大部分包含 1 个或多个“.”。地址中“@”之前的(点)
为了阻止重复/多次注册,我正在创建一个新列,其中将包含“干净”的 Gmail 地址,以便我可以对新注册进行比较。
示例...我有一些行,其中以下 gmail 地址在 gmail 眼中实际上都是相同的。
myname@gmail.com
m.yname@gmail.com
my.name@gmail.com
m.y.n.a.m.e@gmail.com
我知道 replace() 可以简单地用某物替换某物,但我想替换@之前的所有点
是否有一个 sql 函数/语句我可以用来清理所有点在'@'之前,或者我是否必须创建一个 php 例程来实现这个?
最佳答案
试试这个:
select concat(replace(substring(email, 1, locate('@', email)-1), '.', '') , substring(email, locate('@', email), length(email)))
关于php - 可以用 MYSQL replace() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20093503/