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

news/2024/11/1 10:27:25/

MySQL的Replace函数都有哪些用法,你是否都知晓呢?今天,让我带大家花几分钟时间来一起看一看,记得Mark!

目录

  • REPLACE语法
  • 操作实例
    • 使用场景1 -- (Query语句):
    • 使用场景2 -- (update语句):
    • 使用场景3 -- (插入或替换:REPLACE INTO)
  • 附、一张有故事的照片(五)

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执行,业务有特殊需求除外。

附、一张有故事的照片(五)

在这里插入图片描述

看到这张照片,你的第一反应是什么?

网友评价:
这张照片,第一眼我就觉得仿佛看到一个历经风霜的老人,他似乎受过许多磨难,或许他也曾反抗过,可直到今日,身上的枷锁还不曾卸下,所以他开始释然,心灵的自由便是真的自由。


http://www.ppmy.cn/news/658993.html

相关文章

MySQL最左匹配原则,道儿上兄弟都得知道的原则

自MySQL5.5版本起,主流的索引结构转为B树。B树的节点存储索引顺序是从左向右存储,在检索匹配的时候也要满足自左向右匹配。 目录 一、最左匹配原则的原理二、违背最左原则导致索引失效的情况三、查询优化器偷偷干了哪些事儿四、需要你mark的知识点1、如何…

【图文详解:索引极简教程】SQL 查询性能优化原理

简介 在一本厚厚的书籍的前几页,通常会有几页目录。作用是让读者可以快速找到感兴趣的章节进行阅读。 目录之所以可以快速阅读,是因为它提前进行了结构化有序处理。 同样的道理,数据库的数据表的文件下面(以 ClickHouse 为例),通常…

触摸精灵 关于三剑豪手游的练级(练到10级) 制作 请大家帮忙一下!!谢谢大家了

SCREEN_RESOLUTION"768x1024"; SCREEN_COLOR_BITS32;-- 主入口 function main()rotateScreen(0);mSleep(1583);touchDown(11, 237, 808)mSleep(121);touchUp(11)mSleep(1000);touchDown(1, 673, 953)mSleep(151);touchUp(1)mSleep(1000);touchDown(11, 238, 816)mSle…

MySQL的order by该如何避免“未命中索引“

不少同学私信我说,用Explain查看Order By语句执行计划时经常发现用不上索引,难道花好多时间和资源创建的联合索引都摆烂了?今天我把几个同学遇到的情况整理出来,做一个Order By使用索引的坑点分享。希望对你有用。 要学会如何使用…

Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day7】 —— 数据库2(事务)

大家好,我是陈哈哈,北漂五年。认识我的朋友们知道,我是非科班出身,半路出家,大学也很差!这种背景来北漂,你都不知道你会经历什么🙃🙃。   不敢苟同,相信大家…

深夜小酌,50道经典SQL题,真香~

晚上听说我们村子快解封了,居家办公的日子已不多,久久不能平息~~ 蹲坑之余,在网上找到了50道所谓经典SQL题,这不就是深夜必备小菜?我用脚叼起拖鞋,从冰箱拿出封印已久的半瓶可乐,打开数日未见的…

实战案例:使用Python制作疾风剑豪-亚索词云图

感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习,问答、求职一站式搞定! 作者:王大伟 博客专栏:htt…

魏骁:Unite 3D三剑豪

2019独角兽企业重金招聘Python工程师标准>>> 魏骁:Unite 3D&三剑豪 “2014全国技术开放日巡讲”于1月16日在深圳举行。风际游戏CTO魏骁给开发者分享了各自对Unity引擎应用到游戏方面的干货知识。使用了U3D技术制作出《三剑豪》的魏骁,给开…