MySQL实现replace函数的几种实用场景
网络编程 2021-07-05 14:37www.168986.cn编程入门
这篇文章主要介绍了MySQL实现replace函数的几种实用场景,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
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实用场景内容请搜索狼蚁SEO以前的文章或继续浏览狼蚁网站SEO优化的相关文章希望大家以后多多支持狼蚁SEO!
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南