[英]mysql remove points from the E-mail Addresses
我的桌子上没有几个Gmail地址
foobarbaz@gmail.com
foo.bar.baz@gmail.com
foobar.baz@gmail.com
foo.barbaz@gmail.com
我需要替换包含符号“。”的地址gmail。 要得到:
foobarbaz@gmail.com
foobarbaz@gmail.com
foobarbaz@gmail.com
foobarbaz@gmail.com
我的查询不起作用
UPDATE voters set email
replace(substring(email, 1, LOCATE('@', email) -1), '.', '')
WHERE email REGEXP '@googlemail.com|@gmail.com'
请帮助,谢谢!
您要在@
之前提取子字符串并替换点,但是执行此操作后,您无需在@
之后添加子字符串:
UPDATE voters
SET email = CONCAT(replace(substring(email, 1, LOCATE('@', email) -1), '.', ''),
SUBSTRING(email, LOCATE('@', email)))
WHERE email REGEXP '@googlemail.com|@gmail.com'
您可以使用与以下查询类似的东西使用substring_index和substring :
UPDATE table1
SET email = CONCAT (
replace(substring_index(email, '@', 1), '.', '')
,substring(email, instr(email, '@'))
)
WHERE substring_index(email, '@', -1) IN (
'googlemail.com'
,'gmail.com'
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.