前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL中的替换函数replace()使用

SQL中的替换函数replace()使用

作者头像
kirin
发布2021-02-04 11:10:44
7.7K0
发布2021-02-04 11:10:44
举报
文章被收录于专栏:Kirin博客Kirin博客

# 模糊批量替换关键字 update blog_chat set messages=REPLACE(messages,’admin’,’管理员’) where messages like ‘%admin%’

语法 REPLACE ( string_expression , string_pattern , string_replacement )

参数 string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。 string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 (”)。 string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。

返回类型 如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。 如果任何一个参数为 NULL,则返回 NULL。

上面都是官话,不好懂!翻成白话:REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。

一、准备实验环境

1.1 创建表: CREATE TABLE `test_tb` ( `id` int(10) unsigned NOT NULL auto_increment COMMENT ‘主键自增’, `name` char(30) default NULL COMMENT ‘姓名’, `address` char(60) default NULL COMMENT ‘地址’, `country` char(200) default NULL COMMENT ‘国家’, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’测试表’

1.2 插入数据: insert into test_tb(name,address,country) values (‘zhangsan’,’北京 朝阳区’,’中国’), (‘lisi’,’上海 浦东区’,’中国’), (‘wangwu’,’郑州金水区’,’中国’), (‘zhaoliu’,’香港九龙’,’中国香港’), (‘Q7′,’加州牛肉’,’美国’), (‘wangba’,’新九州岛’,’日本’)

SQL中的替换函数replace()使用-麒麟博客
SQL中的替换函数replace()使用-麒麟博客

二、查询替换

2.1 将address字段里的 “区” 替换为 “呕” 显示,如下

select *,replace(address,’区’,’呕’) AS rep from test_tb

SQL中的替换函数replace()使用-麒麟博客
SQL中的替换函数replace()使用-麒麟博客

2.2 将address字段里的 “九” 替换为 “十” 显示,如下

select *,replace(address,’九’,’十’) AS rep from test_tb where id in (4,6)

SQL中的替换函数replace()使用-麒麟博客
SQL中的替换函数replace()使用-麒麟博客

总结:联想到前面有讲过 使用IF(expr1,expr2,expr3) 及 CASE…WHEN…THEN…END 可以实现查询结果的别名显示, 但区别是:这两者是将查询结果值做整体的别名显示,而replace则可以对查询结果的局部字符串做替换显示(输出)。

三、更新替换

3.1 将address字段里的 “东” 替换为 “西” ,如下 update test_tb set address=replace(address,’东’,’西’) where id=2

SQL中的替换函数replace()使用-麒麟博客
SQL中的替换函数replace()使用-麒麟博客

总结:对字段中局部字符串做更新替换。

四、插入替换

4.1 将id=6的name字段值改为wokou replace into test_tb VALUES(6,’wokou’,’新九州岛’,’日本’)

SQL中的替换函数replace()使用-麒麟博客
SQL中的替换函数replace()使用-麒麟博客

总结:向表中“替换插入”一条数据,如果原表中没有id=6这条数据就作为新数据插入(相当于insert into作用);如果原表中有id=6这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-02-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档