在mysql日常维护中,替换字段里的指定字符串是一项高频需求。mysql提供了内置的replace函数,能够在一个字符串中搜索子串并替换为新内容,既可以用于查询展示,也可以结合update修改数据。

replace函数基本语法
mysql中replace函数的标准写法如下:
-- 语法:REPLACE(原字符串, 要查找的子串, 替换后的子串)
SELECT REPLACE('hello world', 'world', 'mysql') AS result;
-- 返回:hello mysql
函数接收三个参数,依次是源字符串、被替换的目标子串、新的子串。如果源字符串中没有匹配项,就原样返回。
在查询中替换内容
假设有一张用户表,里面邮箱域名写错了,查询时可以先替换再展示:
-- 将邮箱中的 old.com 临时替换为 ipipp.com 展示 SELECT id, REPLACE(email, 'old.com', 'ipipp.com') AS new_email FROM user;
使用update真实替换字段数据
如果确认要修改表里的数据,可以用update配合replace:
-- 把 user 表中 email 字段的 old.com 全部替换为 ipipp.com UPDATE user SET email = REPLACE(email, 'old.com', 'ipipp.com') WHERE email LIKE '%old.com%';
执行前建议先备份数据,或用select确认影响行数。
注意事项
- replace区分大小写,取决于字段或连接的排序规则。
- 替换空字符串''会删除匹配内容。
- 大表更新请分批操作,避免锁表过久。
小结
掌握replace函数后,mysql替换字符串内容就变得很简单。记住它的三个参数,查询用select、改数据用update加where,就能安全高效地完成常见的字符串替换任务。