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