REPLACE()函数用于替换字符串中的指定子串,语法为REPLACE(原字符串, 查找文本, 替换文本),返回替换后结果,若无匹配则返回原文本;2. 可用于SELECT查询或UPDATE更新,如更新邮箱域名或将描述中“临时”改为“正式”;3. 该函数大小写敏感且替换所有匹配项,不支持正则,需结合CASE和LIKE实现条件替换,是SQL中最直接的文本替换方法。

在 SQL 中,替换字符串中的文本主要使用 REPLACE() 函数。这个函数可以将字段或字符串中的指定子串替换成新的内容。
REPLACE() 函数语法
REPLACE(原字符串, 要查找的文本, 替换为的文本)
该函数返回替换后的字符串。如果找不到目标文本,则返回原字符串。
基本用法示例
假设有一个用户表 users,其中 email 字段包含过时的域名,想将其更新:
- SELECT REPLACE(‘john@example.com’, ‘example.com’, ‘newmail.com’); 返回 john@newmail.com
- UPDATE users SET email = REPLACE(email, ‘oldmail.com’, ‘newmail.com’); 将所有 oldmail.com 邮箱改为 newmail.com
- SELECT name, REPLACE(description, ‘临时’, ‘正式’) FROM products; 查询时动态替换描述中的文字
注意事项与技巧
REPLACE() 是大小写敏感的,且会替换所有匹配项。例如:
- 若字段值为 “apple and apple”,执行 REPLACE(text, ‘apple‘, ‘orange’) 只替换小写的 apple(取决于数据库的排序规则)
- 要实现模糊或条件替换,可结合 CASE 和 LIKE 使用
- 某些数据库如 SQL Server 支持更复杂的模式替换(如使用 STUFF 或正则),但标准 REPLACE 不支持正则表达式
基本上就这些,REPLACE() 是最直接有效的字符串替换方法,适用于大多数文本更新场景。


