尝试在' @'之前删除所有内容。 MySql电子邮件列中的符号

时间:2014-11-18 18:59:13

标签: mysql sql

我有一个带有'user.email'字段的MySql数据库。我想更新表以删除@符号之前的所有内容,因此我只剩下一列电子邮件域。似乎无法让我查询运行。任何帮助表示赞赏!

4 个答案:

答案 0 :(得分:4)

保留'@'后的所有内容

UPDATE users SET email = SUBSTR(email,LOCATE('@',email) + 1)
WHERE LOCATE('@',email) > 0;

让所有内容保持开始'@'

UPDATE users SET email = SUBSTR(email,LOCATE('@',email))
WHERE LOCATE('@',email) > 0;

答案 1 :(得分:1)

试试这个:

select right(email, charindex('@', reverse(email)) - 1)

答案 2 :(得分:0)

先试试这个:

select (SUBSTR(email, INSTR(email, '@') + 1)) from user

如果确定则更新为:

update user set email = (SUBSTR(email, INSTR(email, '@') + 1))

答案 3 :(得分:0)

假设您的表名是USERS并且EMAIL为列

在更新之前,您的电子邮件列数据就像 aa@xyz.com 123@syz.com

update users SET email=replace(email,left(email, INSTR(email, '@')-1),'');

更新后 xyz.com syz.com

如果您不需要域中的@符号,请删除' -1'来自查询