有没有办法用regexp更新MySQL中的每个电子邮件地址?我想要做的是将something@domain.xx地址更改为something@domain.yy.是否可以使用SQL,或者我应该使用PHP执行此操作?
谢谢!
Qua*_*noi 18
您可以搜索REGEXP有MySQL,但不幸的是,它无法返回匹配的部分.
可以通过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)