在db.table中有2行:
+79513028643+text@example.com
marin.nikulina2014+text@example.com
我需要更换这些电子邮件地址
+79513028643@example.com
marin.nikulina2014@example.com
我提出了这样的要求
update voters set email = concat( replace( substring_index(email, '@', 1), substring_index(substring(email, 2), '@', 1), substring_index(substring(email, 2), '+', 1) ),'@', substring_index(email, '@', -1)) WHERE voters.key regexp 'a78605bb9b9c5512ab3f7a06f73124ffcdafdddf|32a08a88001074fb59db19a3c3a83eb89f75a052'
执行后
+79513028643@example.com@example.com
marin.nikulina2014@example.com
看看第一个地址发生了什么 请帮忙查询! THX!
更新某些电子邮件地址不包含符号“+” 符号“+”之后的upd(2)文本可能不同
答案 0 :(得分:0)
试试这个:
UPDATE mytable
SET email = REPLACE(email, '+text', '')
WHERE email REGEXP '+79513028643+text@example.com'
或者您可以使用以下其中一种:
REGEXP_LIKE(text, pattern [, mode])
REGEXP_SUBSTR(text, pattern [,position [,occurence [,mode]]])
REGEXP_INSTR?(text, pattern [,position [,occurence [,return_end [,mode]]]])
REGEXP_REPLACE?(text, pattern, replace [,position [,occurence [,return_end [,mode]]])