更新MySQL中的电子邮件地址(regexp?)

boo*_*gie 6 regex mysql sql

有没有办法用regexp更新MySQL中的每个电子邮件地址?我想要做的是将something@domain.xx地址更改为something@domain.yy.是否可以使用SQL,或者我应该使用PHP执行此操作?

谢谢!

Qua*_*noi 18

您可以搜索REGEXPMySQL,但不幸的是,它无法返回匹配的部分.

可以通过SQL以下方式完成:

UPDATE  mytable
SET     email = REPLACE(email, '@domain.xx', '@domain.yy')
WHERE   email REGEXP '@domain.xx$'
Run Code Online (Sandbox Code Playgroud)

您可以省略该WHERE子句,但它可能会导致意外结果(如@example.xxx.com将被替换@example.yyx.com),因此最好离开它.


小智 5

UPDATE tableName
SET email = CONCAT(SUBSTRING(email, 1, locate('@',email)), 'domain.yy')
WHERE email REGEXP '@domain.xx$';
Run Code Online (Sandbox Code Playgroud)