mysql 高级用法(MySQL实现replace函数的几种实用场景)
mysql 高级用法
MySQL实现replace函数的几种实用场景REPLACE语法
REPLACE(String,from_str,to_str)
即:将String中所有出现的from_str替换为to_str,这里的from_str不支持正则匹配。
操作实例
测试表数据如下:
|
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如下:
|
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','');
|
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 |
|
-- 去掉后在查询: + ----+--------------+--------------+-------+ | 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设置自增即可。
|
-- 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数据库延时监控(Mysql sql慢查询监控脚本代码实例)
- mysqlpxc性能(MySQL之PXC集群搭建的方法步骤)
- 如何在cmd里开启mysql(Windows下通过cmd进入DOS窗口访问MySQL数据库)
- mysql mvcc 流程(Mysql MVCC机制原理详解)
- python下的sql处理(python中aioysql异步操作MySQL的方法)
- mysql运算符使用方法(MySQL <>和<=> 运算符介绍)
- mysql怎么创建联合索引(mysql的联合索引复合索引的实现)
- apache搭建php环境(Windows上安装Apache2、PHP5、MySQL5及与Resin配合实现多系统之整合)
- mysql效率查询(MySQL 如何分析查询性能)
- mysql插入数据错误代码(教你解决往mysql数据库中存入汉字报错的方法)
- key的用法归纳mysql(详解mysql中explain的type)
- mysql事务特性的主要作用(详解MySQL中事务的持久性实现原理)
- zabbix如何配置监控(zabbix监控mysql的实例方法)
- python与mysql的联系(MySQL和Python交互的示例)
- mysql权限设置
- mysql实现mvc(mysql的MVCC多版本并发控制的实现)
- ()
- SCI检索 SSCI检索 EI检索 ISTP检索 CSCD检索简介(SCI检索SSCI检索EI检索)
- 参考文献里期刊名称的写法,你知道吗(参考文献里期刊名称的写法)
- 硕博期刊 SCI SSCI CSSCI分不清 一文带你看懂主流期刊分类(硕博期刊SCISSCI)
- 辱华品牌新百伦官宣新代言人IU,个别粉丝希望get爱豆同款(辱华品牌新百伦官宣新代言人IU)
- 巅峰时期被爆床照,曾被选国民最讨厌女星,IU不为人知的黑历史(巅峰时期被爆床照)