php - 可以用 MYSQL replace() 吗?

标签 php mysql sql

仅使用 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/

相关文章:

php - 动态数据库表属性(最佳实践)

mysql - 存储分隔列表的数据类型

mysql - 如何找到经常一起玩的玩家组

SQL:中断查询

php - 如何修复通知 : Only variable references should be returned by reference in

php - Mysql解释00 :00:00 as 12:00am?

php - "SQLSTATE[HY000]: General error"- 一条语句中的多个 SQL 查询

mySQL 更新接下来的 12 个 NULL 值,日期递增 1

MySql Alter 语法错误,带有多个 FK

带有 COUNT(*) 问题的 SQL LEFT JOIN