gpt4 book ai didi

MySQL实现replace函数的几种实用场景

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章MySQL实现replace函数的几种实用场景由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

REPLACE语法 。

REPLACE(String,from_str,to_str) 。

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

操作实例 。

测试表数据如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql> select * from `LOL`;
+ ----+----------------+--------------+-------+
| id | hero_title   | hero_name  | price |
+ ----+----------------+--------------+-------+
| 1 | 刀锋之影    | 泰隆     | 6300 |
| 2 | 迅捷斥候    | 提莫     | 6300 |
| 3 | 光辉女郎AA   | 拉克丝    | 1350 |
| 4 | 发条A魔灵A   | 奥莉安娜   | 6300 |
| 5 | 至高之拳    | 李青     | 6300 |
| 6 | 无极剑圣    | 易      |  450 |
| 7 | 疾风剑豪    | 亚索     | 6300 |
+ ----+----------------+--------------+-------+
7 rows in set (0.00 sec)

使用场景1 – (Query语句):

需求:把"hero_title"字段中所有的"之"换成" - "来展示,SQL如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT REPLACE (hero_title, '之' , ' - ' ) as repl_title,hero_name,price from LOL;
mysql> SELECT REPLACE (hero_title, '之' , ' - ' ) as repl_title,hero_name,price from `LOL`;
+ ----------------+--------------+-------+
| repl_title   | hero_name  | price |
+ ----------------+--------------+-------+
| 刀锋 - 影   | 泰隆     | 6300 |
| 迅捷斥候    | 提莫     | 6300 |
| 光辉女郎AA   | 拉克丝    | 1350 |
| 发条A魔灵A   | 奥莉安娜   | 6300 |
| 至高 - 拳   | 李青     | 6300 |
| 无极剑圣    | 易      |  450 |
| 疾风剑豪    | 亚索     | 6300 |
+ ----------------+--------------+-------+
7 rows in set (0.00 sec)

使用场景2 – (update语句):

需求:把"hero_title"字段中所有的"A"去掉,SQL如下:

UPDATE LOL SET hero_title=REPLACE(hero_title,‘A',''),

?
1
2
3
mysql> UPDATE `LOL` SET hero_title= REPLACE (hero_title, 'A' , '' );
Query OK, 2 rows affected (0.05 sec)
Rows matched: 7 Changed: 2 Warnings: 0
?
1
2
3
4
5
6
7
8
9
10
11
12
13
-- 去掉后在查询:
+ ----+--------------+--------------+-------+
| id | hero_title  | hero_name  | price |
+ ----+--------------+--------------+-------+
| 1 | 刀锋之影   | 泰隆     | 6300 |
| 2 | 迅捷斥候   | 提莫     | 6300 |
| 3 | 光辉女郎   | 拉克丝    | 1350 |
| 4 | 发条魔灵   | 奥莉安娜   | 6300 |
| 5 | 至高之拳   | 李青     | 6300 |
| 6 | 无极剑圣   | 易      |  450 |
| 7 | 疾风剑豪   | 亚索     | 6300 |
+ ----+--------------+--------------+-------+
7 rows in set (0.00 sec)

使用场景3 – (插入或替换:REPLACE INTO) 。

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

需求场景:

这张表存的每个客户最近一次交易订单信息,要求保证单个用户数据不重复录入,且执行效率最高,与数据库交互最少,支撑数据库的高可用。 此时,可以使用"REPLACE INTO"语句,这样就不必先查询,再决定是否先删除再插入.

  • "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。
  • "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。
  • "REPLACE INTO"语句是基于唯一索引或主键来判断唯一(是否存在)的。

注意事项:如下SQL所示,需要在username字段上建立唯一索引(Unique),transId设置自增即可.

?
1
2
3
4
5
6
7
-- 20点充值
REPLACE INTO last_transaction (transId,username,amount,trans_time,remark)
   VALUES ( null , 'chenhaha' , 30, '2020-06-11 20:00:20' , '会员充值' );
 
-- 21点买皮肤
REPLACE INTO last_transaction (transId,username,amount,trans_time,remark)
   VALUES ( null , 'chenhaha' , 100, '2020-06-11 21:00:00' , '购买盲僧至高之拳皮肤' );

 若username='chenhaha'的记录不存在,REPLACE语句将插入新记录(首次充值),否则,当前username='chenhaha'的记录将被删除,然后再插入新记录.

id不要给具体值,不然会影响SQL执行,业务有特殊需求除外.

到此这篇关于MySQL实现replace函数的几种实用场景的文章就介绍到这了,更多相关MySQL replace实用场景内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/qq_39390545/article/details/108435109 。

最后此篇关于MySQL实现replace函数的几种实用场景的文章就讲到这里了,如果你想了解更多关于MySQL实现replace函数的几种实用场景的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com