mysql查询replace用法详解
语法
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','新九州岛','日本')
二、查询替换
2.1 将address字段里的 “区” 替换为 “呕” 显示,如下
select *,replace(address,'区','呕') AS rep
from test_tb
2.2 将address字段里的 “九” 替换为 “十” 显示,如下
select *,replace(address,'九','十') AS rep
from test_tb
where id in (4,6)
总结:联想到前面有讲过 使用IF(expr1,expr2,expr3) 及 CASE...WHEN...THEN...END 可以实现查询结果的别名显示,
但区别是:这两者是将查询结果值做整体的别名显示,而replace则可以对查询结果的局部字符串做替换显示(输出)。
三、更新替换
3.1 将address字段里的 “东” 替换为 “西” ,如下
update test_tb set address=replace(address,'东','西') where id=2
总结:对字段中局部字符串做更新替换。
四、插入替换
4.1 将id=6的name字段值改为wokou
replace into test_tb VALUES(6,'wokou','新九州岛','日本')
总结:向表中“替换插入”一条数据,如果原表中没有id=6这条数据就作为新数据插入(相当于insert into作用);如果原表中有id=6这条数据就做替换(相当于update作用)。对于没有指定的字段以默认值插入。
转自:https://blog.csdn.net/bingguang1993/article/details/80592579
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2021-08-04 表单动态新增
2021-08-04 前台数组封装