鹿泽鹿泽  2024-05-20 10:57:49 鹿泽笔记 隐藏边栏  0 

MySQL的Replace函数都有哪些用法?本文分享一下:

1、replace 函数语法-查询操作

replace(String,from_str,to_str)

将String中所有出现的from_str替换为to_str,这里的from_str不支持正则匹配。

数据如下:

mysql> select * from a;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | ceshi-a |
|  2 | ceshi-b   |
|  3 | ceshi-c   |
+----+-----------+
3 rows in set (0.06 sec)

需求: 把name中所有 - 替换成 #

mysql> select id,replace(name,'-','#') from a;
+----+-----------------------+
| id | replace(name,'-','#') |
+----+-----------------------+
|  1 | ceshi#a             |
|  2 | ceshi#b               |
|  3 | ceshi#c               |
+----+-----------------------+
3 rows in set (0.07 sec)

2、replace 函数语法-更新操作

需求: 把name中所有 - 替换成 =

mysql> update a set name = replace(name,'-','=');
Query OK, 3 rows affected (0.03 sec)
Rows matched: 3  Changed: 3  Warnings: 0
mysql> select * from a;
+----+-----------+
| id | name      |
+----+-----------+
|  1 | ceshi=a |
|  2 | ceshi=b   |
|  3 | ceshi=c   |
+----+-----------+
3 rows in set (0.08 sec)

3、replace 函数语法-插入操作

如果我们想插入一条新记录,但如果记录已经存在,就先删除原记录,再插入新记录。

插入数据的表必须有主键或者是唯一索引,否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。

mysql> replace into a (id,name) values (1,'ceshi');
Query OK, 2 rows affected (0.03 sec)
mysql> select * from a;
+----+------------+
| id | name       |
+----+------------+
|  1 | ceshi |
|  2 | ceshi=b    |
|  3 | ceshi=c    |
+----+------------+
3 rows in set (0.06 sec)
1、文章版权归作者所有,未经允许请勿转载。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505