mysql查询replace函数的使⽤⼀、replace的语法
replace ( string_expression , string_pattern , string_replacement )
string_expression 要搜索的字符串表达式。string_expression 可以是字符或⼆进制数据类型。
string_pattern 是要查的⼦字符串。string_pattern 可以是字符或⼆进制数据类型。string_pattern 不能是空字符串 ('')。string_replacement 替换字符串。string_replacement 可以是字符或⼆进制数据类型。
返回类型字符串replace函数
如果其中的⼀个输⼊参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。
如果任何⼀个参数为 NULL,则返回 NULL。
上⾯的意思说⼈话就是:
replace(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。
⼆、创建表,并插⼊⼏条数据⽤来做测试
create table test_re
(
id int(5) not null auto_increment,
name varchar(10) default 'join',
address varchar(30) default 'china',
primary key (id)
);
insert into test_re(name,address) values('jack','uk');
insert into test_re(name,address) values('mary','us');
insert into test_re(name,address) values('bob','jap');
[test]> select * from test_re;
+----+------+---------+
| id | name | address |
+----+------+---------+
|  1 | jack | uk      |
|  2 | mary | us      |
|  3 | bob  | jap    |
+----+------+---------+
3 rows in set (0.00 sec)
三、replace的使⽤案例
(1)查询替换
将address字段中的字符u替换为字符串make,操作语句如下:
select *,replace(address,'u','make') as replace from test_re;
[test]> select *,replace(address,'u','make') as rep from test_re;
+----+------+---------+-------+
| id | name | address | rep  |
+----+------+---------+-------+
|  1 | jack | uk      | makek |
|  2 | mary | us      | makes |
|  3 | bob  | jap    | jap  |
+----+------+---------+-------+
3 rows in set (0.00 sec)
(2)更新替换
将id为1那⾏数据的address字段中的字符u替换为字符串make,update test_re set address=replace(address,'u','make') where id=1;
[test]> update test_re set address=replace(address,'u','make') where id=1; Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0
[test]> select * from test_re;
+----+------+---------+
| id | name | address |
+----+------+---------+
|  1 | jack | makek  |
|  2 | mary | us      |
|  3 | bob  | jap    |
+----+------+---------+
(3)插⼊替换
将id=3的name字段修改为david,执⾏语句如下:
replace into test_re values(3,'david','jap');
[test]> replace into test_re values(3,'david','jap');
Query OK, 2 rows affected (0.06 sec)
[test]> select * from test_re;
+----+-------+---------+
| id | name  | address |
+----+-------+---------+
|  1 | jack  | makek  |
|  2 | mary  | us      |
|  3 | david | jap    |
+----+-------+---------+
replace into test_re values(4,'david','jap');
[test]> replace into test_re values(4,'david','jap');
Query OK, 1 row affected (0.04 sec)
[test]> select * from test_re;
+----+-------+---------+
| id | name  | address |
+----+-------+---------+
|  1 | jack  | makek  |
|  2 | mary  | us      |
|  3 | david | jap    |
|  4 | david | jap    |
+----+-------+---------+
[test]> replace into test_re(id,name) values(2,'ted');
Query OK, 2 rows affected (0.04 sec)
[test]> select * from test_re;
+----+-------+---------+
| id | name  | address |
+----+-------+---------+
|  1 | jack  | makek  |
|  2 | ted  | china  |
|  3 | david | jap    |
|  4 | david | jap    |
+----+-------+---------+
replace into在向表中插⼊数据时,如果原表中没有id这条数据,就会作为新数据被插⼊,相当于insert into;如果原表中有id这⾏数据就做替换,相当于update作⽤,对于没有指定的字段会以默认值插⼊。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。