欢迎您访问新疆栾骏商贸有限公司,公司主营电子五金轴承产品批发业务!
全国咨询热线: 400-8878-609

新闻资讯

技术学院

mysql中REPLACE函数如何使用_mysql REPLACE字符串函数

作者:P粉6029986702025-11-15 00:00:00
REPLACE()函数用于字符串中指定子串的替换,语法为REPLACE(str, from_str, to_str),返回将str中所有from_str替换为to_str的结果;可用于SELECT查询或UPDATE更新字段内容,如替换邮箱域名;需注意其区分大小写、全部匹配替换且不改变原串若无匹配;与REPLACE INTO语句不同,后者是先删后插的SQL操作,两者功能完全不同。

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() 是“找并替换文本”,就能正确使用。