字符串的替换功能使用太高频了,本教程从最基本的REPLACE()
替换到使用 REPLACE()
替换指定字段中的部分字符串以及REPLACE()
与 UPDATE
、WHERE
语法的配合使用场景,逐渐深入,MySQL 替换字符串,你就看这一篇就够了。
MySQL REPLACE() 的基本语法
REPLACE(string, old_substring, new_substring)
- old_substring:需要被替换的值
- new_substring:替换后的值
1.基本示例
我们先从基本示例演示起,我们创建一个别名叫做 kalacloud_string
的表, 用来展示效果。
我们把「 I use kalayun 」中的「 kalayun 」替换成「 kalacloud 」。
**SELECT** REPLACE('I use kalayun', 'kalayun', 'kalacloud') **AS** kalacloud_string;
返回值:
2.替换 NULL 参数
我们把「 I use kalayun 」中的「 kalayun 」一词替换为 NULL
,另一条是将 「 I use kalayun 」中的 NULL
替换成「 kalacloud 」
SELECT REPLACE('I use kalayun', 'kalayun', NULL) AS kalacloud_string;
SELECT REPLACE('I use kalayun', NULL, 'kalacloud') AS kalacloud_string;
返回值:
从返回值我们可以看出,不论是替换,还是被替换的部分,只要是 NULL,整个 string 都会变成 NULL

连接数据库后需要开发后台系统?
3.部分替换
在「 I use kalayun 」中,我们把「kalayun」里的「yun」替换成「cloud」
**SELECT** REPLACE('I use kalayun', 'yun', 'cloud') **AS** kalacloud_string;
返回值:
4.区分大小写和无匹配情况
SELECT REPLACE('I use kalayun', 'KALAYUN', 'kalacloud') AS kalacloud_string;
返回值:
REPLACE()
对大小写敏感,在查找替换时,要特别注意大小写。另外如果没有超找到指定对值,MySQL 不会对原 string
做任何动作,直接原样输出。
5.替换多个匹配值
我们把「I use kalayun,kalayun is good.」中的「kalayun」替换成「kalacloud」
**SELECT** REPLACE("I use kalayun,kalayun is good.', 'kalayun', 'kalacloud') **AS** kalacloud_string;
返回值:
整个 string
中所有的「kalayun」都会被替换成「kalacloud」。
6.REPLACE()
在表中的应用 - 替换一行中部分值
这是卡拉云的用户列表,我们替换一位用户的名字
SELECT Name, REPLACE(Name, 'Jiang', 'Xiao') AS NickName FROM kalacloud_users_demo WHERE id=1;
使用 SELECT
和 WHERE
组合将列表中的一个指定值中进行查找并替换的动作,将「Jiang Chuan」中的「Jiang」替换为「Xiao」:
7.REPLACE()
在表中的应用 - 替换指定字段中的部分值
当我们要替换表格中某一字段中的某些值时,我们可以这么使用:
SELECT ID,Name,Email, REPLACE(Email, 'qq', 'gmail') AS `Replaced_Email` FROM kalacloud_users_demo;
使用 REPLACE()
替换了 Email 字段中所有「qq」为「gmail」
8.REPLACE()
与 UPDATE
的使用
这里再演示一下最常见的 UPDATE
语句与 REPLACE()
结合的应用场景,查找替换指定字段中匹配的值:
UPDATE kalacloud_users_demo SET Office_Code = REPLACE(Office_Code,'PIN','CHUAN');
select * from kalacloud_users_demo;
我们可以看到REPLACE()
在 Office_Code 字段中查了 4 行,找到其中的「PIN」并替换为「CHUAN」。
总结
MySQL 中 REPLACE()
替换功能非常常用,本教程中 8 个例子已经涵盖了大多数替换场景,你可以收藏起来,以备用时查询。
顺便推荐一下我和小伙伴一起开发的卡拉云。只要你会写 SQL 无需会任何前端,也可以快速搭建后台管理工具,比如用户权限管理系统、销售管理系统、学生信息系统、财务对账系统,还可以搭建一套属于自己的数据查询看板,一键分享给协作组的同学使用,再也不用担心自己沦为人肉查询机。
卡拉云不仅可以像命令行一样灵活,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。数月的开发工作量,使用卡拉云后可缩减至数天,欢迎免费试用卡拉云。
卡拉云可快速接入的常见数据库及 API,可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据,仅需拖拽一键生成前端代码,简单一行代码即可映射数据到指定组件中。
卡拉云可直接添加导出按钮,导出适用于各类分析软件的数据格式,方便快捷。
下图为使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。
立即开通卡拉云,搭建属于自己的数据后台工具吧。
如果你还有什么疑问,欢迎一起讨论。我的微信 HiJiangChuan。
有关 MySQL 教程,可继续拓展学习: