我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL特殊函数使用技巧梳理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL特殊函数使用技巧梳理

1. group_concat

使用group_concat函数,可以轻松的把分组后,name 相同的数据拼接到一起,组成一个字符串,用逗号分隔。

2. char_length

通过该函数就能获取字符长度。

3.locate

在某个字符串中的位置

4.replace

将字符串中的字符 A 替换成 B。REPLACE(name,‘A’,‘B’)

5.now

获取当前时间

6.insert into … select

INSERT INTO `brand`(`id`, `code`, `name`, `edit_date`)
select null,code,name,now(3) from `order` where code in ('004','005');

这样就能将 order 表中的部分数据,非常轻松插入到 brand 表中。

7.insert into … ignore

INSERT ignore INTO `brand`(`id`, `code`, `name`, `edit_date`)
VALUES (123, '108', '苏三', now(3));

如果 brand 表中已经存在 name 为苏三的数据了,则该 sql 语句也能正常执行,并不会报错。因为它会忽略异常,返回的执行结果影响行数为 0,它不会重复插入数据。

8.select … for update

begin;
select * from `user` where id=1
for update;
//业务逻辑处理
update `user` set score=score-1 where id=1;
commit;

这样在一个事务中使用for update锁住一行记录,其他事务就不能在该事务提交之前,去更新那一行的数据。

需要注意的是 for update 前的 id 条件,必须是表的主键或者唯一索引,不然行锁可能会失效,有可能变成表锁

9.on duplicate key update

通常情况下,我们在插入数据之前,一般会先查询一下,该数据是否存在。如果不存在,则插入数据。如果已存在,则不插入数据,而直接返回结果。

在没啥并发量的场景中,这种做法是没有什么问题的。但如果插入数据的请求,有一定的并发量,这种做法就可能会产生重复的数据。

当然防止重复数据的做法很多,比如:加唯一索引、加分布式锁等。

但这些方案,都没法做到让第二次请求也更新数据,它们一般会判断已经存在就直接返回了。

这种情况可以使用on duplicate key update语法。

该语法会在插入数据之前判断,如果主键或唯一索引不存在,则插入数据。如果主键或唯一索引存在,则执行更新操作。

INSERT  INTO `brand`(`id`, `code`, `name`, `edit_date`)
VALUES (123, '108', '苏三', now(3))
on duplicate key update name='苏三',edit_date=now(3);

这样一条语句就能轻松搞定需求,既不会产生重复数据,也能更新最新的数据。

但需要注意的是,在高并发的场景下使用on duplicate key update语法,可能会存在死锁的问题,所以要根据实际情况酌情使用。

10.show create table

有时候,我们想快速查看某张表的字段情况,通常会使用desc命令

desc `order`;

查看索引信息

show index

我们能够看到非常完整的建表语句,表名、字段名、字段类型、字段长度、字符集、主键、索引、执行引擎等都能看到

show create table
show create table `order`;

11.create table … select

有时候,我们需要快速备份表。

通常情况下,可以分两步走:

创建一张临时表

将数据插入临时表

创建临时表

create table order_2022121819 like `order`;

将 order 表的数据插入到 order_2022121819 表中,也就是实现数据备份的功能。

insert into order_2022121819 select * from `order`;

整合上面两条命令

create table order_2022121820select * from `order`;

总结

到此这篇关于MySQL特殊函数使用技巧梳理的文章就介绍到这了,更多相关MySQL特殊函数技巧内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL特殊函数使用技巧梳理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL特殊函数使用技巧梳理

MySQL提供了各种特殊函数,它们可以帮助管理者查询复杂的数据,资料库包括字符串函数,数学函数,日期函数,程序函数等,下面这篇文章主要给大家介绍了关于MySQL特殊函数使用技巧的相关资料,需要的朋友可以参考下
2023-05-20

MySQL聚合函数使用技巧

MySQL聚合函数用于对一组值执行计算并返回单个值。以下是一些常见聚合函数的使用技巧:COUNT():用于计算行数或非空值的数量。例如,要计算表中的总记录数,可以使用SELECT COUNT(*) FROM table_name;。SUM(
MySQL聚合函数使用技巧
2024-10-20

Sql Server Sum函数的特殊使用

利用Sql Server的Sum函数开窗得到累计值具体详解https://www.cnblogs.com/zhaoshujie/p/9594676.html 个人示例例子 DECLARE @Sale Table(--年份月份销售总额 [Year] INT,
Sql Server Sum函数的特殊使用
2020-03-27

winxp技巧使用方法及特殊之处详解

1.在记事本中自动记录文件的打开时间 在记事本中,我们可以记录每次打开某个文本文件的时间,方法为:在该文件的第一行输入“.LOG”(注意:必须大写!),然后换行开始正文。这样在每次打开了该文件之后在关闭时会自动在文件
2023-05-26

Python函数的定义、特点和使用技巧

本篇内容介绍了“Python函数的定义、特点和使用技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!函数特点隐藏实现功能的细节重用代码提高可
2023-06-02

JavaScript中的特殊函数怎么使用

这篇文章主要介绍“JavaScript中的特殊函数怎么使用”,在日常操作中,相信很多人在JavaScript中的特殊函数怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript中的特殊函数怎
2023-07-02

PHP 函数使用技巧

掌握 php 函数的使用技巧至关重要,其中包括类型提示、默认参数值和可变参数。这些技巧可提升代码的可读性、可维护性和效率。例证中展示了利用 php 函数计算一组矩形周长的实战案例,充分体现了掌握函数技巧的优势。PHP 函数使用技巧PHP
PHP 函数使用技巧
2024-04-10

mysql特殊字符的转义及javascript转义函数怎么使用

本篇内容介绍了“mysql特殊字符的转义及javascript转义函数怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MySQL中特殊
2023-07-06

字符处理技巧:SQL LOWER函数高效使用

在字符处理中,SQL的LOWER函数是一个非常有用的工具,它可以将字符串中的所有大写字母转换为小写字母。以下是关于如何高效使用SQL LOWER函数的详细技巧:了解函数功能:LOWER函数用于将字符串中的大写字母转换为小写字母。它接受一个
字符处理技巧:SQL LOWER函数高效使用
2024-10-24

Android开发Dart Constructors构造函数使用技巧整理

目录参考正文什么是构造函数?缺省构造函数 ー Class()私有构造函数ー Class._()命名构造函数ー class.Named()私有命名构造函数ー class._Named ()工厂构造函数ー factory class Class
2022-06-07

MyBatis中怎么使用TypeHandler处理特殊数据类型

在 MyBatis 中使用 TypeHandler 处理特殊数据类型的步骤如下:创建一个自定义的 TypeHandler 类,继承自 org.apache.ibatis.type.BaseTypeHandler 接口,并实现其方法,例如:p
MyBatis中怎么使用TypeHandler处理特殊数据类型
2024-04-08

Linux编程实践:exit函数的使用技巧

在Linux编程中,exit()函数是一个非常重要的函数,它用于终止进程的执行正常退出:当程序执行完毕或者需要正常退出时,可以调用exit(0)。这里的0表示程序正常退出,不返回任何错误信息。异常退出:当程序遇到错误或异常时,可以调用exi
Linux编程实践:exit函数的使用技巧
2024-09-09

C++ 函数模板中类型参数的使用技巧?

使用类型参数技巧可以创建针对任何类型工作的通用 c++++ 函数模板,包括:声明类型参数:使用尖括号 和 typename 声明类型参数。使用类型参数:在函数体内使用类型参数作为类型声明。实战案例:使用类型参数创建通用 stack 类 p
C++ 函数模板中类型参数的使用技巧?
2024-04-15

编程热搜

目录