MySQL 中的 REPLACE() 函数用于在字符串中替换指定的子字符串。它不是用来替代 INSERT 或 UPDATE 的语句,而是一个字符串处理函数,常用于查询或更新字段内容时做文本替换。
基本语法
REPLACE(str, from_str, to_str)
说明:
str:原始字符串 from_str:需要被替换的子字符串 to_str:用来替换的新字符串函数返回将 str 中所有出现的 from_str 替换为 to_str 后的结果字符串。
使用示例
1. 直接在 SELECT 中使用:
SELECT REPLACE('Hello World', 'World', 'MySQL');
结果:'Hello MySQL'
2. 替换字段中的部分内容:
假设有一张用户表 user,email 字段中有一些旧域名 needo.com,想替换成 newdo.com:
SELECT email, REPLACE(email, 'needo.com', 'newdo.com') AS new_email FROM user;
3. 在 UPDATE 语句中实际更新数据:
UPDATE user SET email = REPLACE(email, 'needo.com', 'newdo.com') WHERE email LIKE '%needo.com%';
这条语句会把所有 email 中包含 needo.com 的记录替换成 newdo.com。
注意事项
REPLACE() 区分大小写(因为底层依赖字段的字符集和排序规则) 如果 from_str 不存在,原字符串 str 不变 所有匹配的 from_str 都会被替换,不是只替换第一个 该函数可用于 CHAR、VARCHAR、TEXT 等文本类型字段与 REPLACE INTO 的区别
注意不要混淆:
REPLACE() 是字符串函数,用于替换文本内容 REPLACE INTO 是一种 SQL 语句,类似 INSERT,但会先删除已存在的主键或唯一索引记录再插入新数据两者用途完全不同,别名相似容易误解。
基本上就这些。只要记住 REPLACE() 是“找并替换文本”,就能正确使用。
