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
- python怎么操作mysql(详解Python的数据库操作pymysql)
- 查询mysql 死锁(MySQL线上死锁分析实战)
- mysqlcount使用技巧(MySQL巧用sum、case和when优化统计查询)
- mysql的分页原理(mysql分页的limit参数简单示例)
- mysql中查询数据合并(Mysql合并结果接横向拼接字段的实现步骤)
- python对mysql数据分析(python使用adbapi实现MySQL数据库的异步存储)
- mysql如何给一个表批量添加字段(mysql从一张表查询批量数据并插入到另一表中的完整实例)
- 如何打开mysql8.0客户端服务(MySQL mysqladmin客户端的使用简介)
- Mysql中CONCAT、CONCAT_WS字符串拼接函数
- mysql深度分页问题(MySQL DDL 引发的同步延迟该如何解决)
- mysql如何解决主从延迟(MySQL主从延迟问题解决)
- mysql 查询都是0的值(MySQL按小时查询数据,没有的补0)
- mysql是否支持透明数据加密(MySQL的加密解密的几种方式小结)
- mysql索引详解及基本用法(Mysql普通索引与唯一索引的选择详析)
- 创建数据库入门教程mysql(MySQL数据库安装教程一学就会)
- idea的mysql如何连接(在IntelliJ IDEA中使用Java连接MySQL数据库的方法详解)
- 吉林神秘传染链跨省 传染源尚未找到,舒兰 封城(吉林神秘传染链跨省)
- 吉林舒兰 封城 聚集性疫情传播链已延至沈阳,有一个细节让人忧心(吉林舒兰封城)
- 1天密接者猛增77人,患者轨迹透露危险信号 吉林市全面封闭管理(1天密接者猛增77人)
- 吉林舒兰 封城 15人确诊 276人隔离,出现跨省传播(吉林舒兰封城)
- 四月新番CP人气榜公布,《剃须》两度上榜,沙优不是女朋友(四月新番CP人气榜公布)
- 2019年外媒秋季新番动画角色CP排行榜,桐人和爱丽丝落榜(2019年外媒秋季新番动画角色CP排行榜)
热门推荐
- .net面试智力题
- php7 入门(php7新特性的理解和比较总结)
- dedecms模板如何修改日期(DEDECMS网站文章列表页更新点击次数的问题完美解决)
- 如何看idea连接mysql数据库(IDEA 链接Mysql数据库并执行查询操作的完整代码)
- html5淘汰的标签(浅谈HTML5新增和废弃的标签)
- SQL Server数据库应用中有用的几个工具
- python怎么在csv修改数据(python 编写输出到csv的操作)
- Html5新增的标签
- html5能取数据库吗(HTML5 客户端数据库简易使用:IndexedDB)
- laravel 用户登录认证(Laravel5.5 实现后台管理登录的方法自定义用户表登录)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9