MySQL 替换指定字段中的部分字符串 - REPLACE()应用详解

A kitten
蒋川
B 端产品经理,卡拉云联合创始人
阅读时长 1 分钟

MySQL 替换指定字段中的部分字符串 - REPLACE()应用详解

字符串的替换功能使用太高频了,本教程从最基本的REPLACE() 替换到使用 REPLACE() 替换指定字段中的部分字符串以及REPLACE()UPDATEWHERE 语法的配合使用场景,逐渐深入,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 参数

从返回值我们可以看出,不论是替换,还是被替换的部分,只要是 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() 在表中的应用 - 替换一行中部分值

这是卡拉云的用户列表,我们替换一位用户的名字

REPLACE() 在表中的应用 - 替换一行中部分值

SELECT Name, REPLACE(Name, 'Jiang', 'Xiao') AS NickName FROM kalacloud_users_demo WHERE id=1;

使用 SELECTWHERE 组合将列表中的一个指定值中进行查找并替换的动作,将「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() 结合的应用场景,查找替换指定字段中匹配的值:

REPLACE()与UPDATE的使用

UPDATE kalacloud_users_demo SET Office_Code = REPLACE(Office_Code,'PIN','CHUAN');
select * from kalacloud_users_demo;

REPLACE()与UPDATE的使用

我们可以看到REPLACE()在 Office_Code 字段中查了 4 行,找到其中的「PIN」并替换为「CHUAN」。

总结

MySQL 中 REPLACE() 替换功能非常常用,本教程中 8 个例子已经涵盖了大多数替换场景,你可以收藏起来,以备用时查询。

顺便推荐一下我和小伙伴一起开发的卡拉云。只要你会写 SQL 无需会任何前端,也可以快速搭建后台管理工具,比如用户权限管理系统、销售管理系统、学生信息系统、财务对账系统,还可以搭建一套属于自己的数据查询看板,一键分享给协作组的同学使用,再也不用担心自己沦为人肉查询机。

使用卡拉云轻松搭建企业内部工具

卡拉云不仅可以像命令行一样灵活,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。数月的开发工作量,使用卡拉云后可缩减至数天,欢迎免费试用卡拉云

卡拉云可一键接入常见的数据库及 API

卡拉云可快速接入的常见数据库及 API,可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据,仅需拖拽一键生成前端代码,简单一行代码即可映射数据到指定组件中。

搭建数据看板,直接导出数据

卡拉云可直接添加导出按钮,导出适用于各类分析软件的数据格式,方便快捷。

下图为使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。

使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台

立即开通卡拉云,搭建属于自己的数据后台工具吧。

如果你还有什么疑问,欢迎一起讨论。我的微信 HiJiangChuan。

卡拉云联合创始人蒋川的微信

有关 MySQL 教程,可继续拓展学习:

© 2021 卡拉云 Built with ❤️ in Beijing

京ICP备15049164号-9