sql语句replace函数的使用

SQL中的替换函数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。

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

说明:接触这个参数是因为我要创建合同,分为草稿和提审状态,并且修改也不知道用户修改哪些字段,所以应用到了替换插入 relpace into
用法:用的时候在数据库建给某一个字段建一个唯一索引,保证数据的唯一性并能更改, 如果插入的时候只要索引相同 其他字段不同 都会更改,由此非常便利

一、准备实验环境

1.1 创建表:

CREATE TABLE test_tb
id int10) unsigned NOT NULL auto_increment COMMENT ‘主键自增’,
name char30) default NULL COMMENT ‘姓名’,
address char60) default NULL COMMENT ‘地址’,
country char200) default NULL COMMENT ‘国家’,
PRIMARY KEY id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’测试表’

1.2 插入数据:

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

二、查询替换

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

select *,replaceaddress,’区’,’呕’) AS rep
from test_tb

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

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

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

三、更新替换

3.1 将address字段里的 “东” 替换为 “西” ,如下

update test_tb set address=replaceaddress,’东’,’西’) where id=2

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

四、插入替换

4.1 将id=6的name字段值改为wokou

replace into test_tb VALUES6,’wokou’,’新九州岛’,’日本’)

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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注