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_2022121820
select * from `order`;

MySQL特殊函数使用技巧相关推荐

  1. MySQL 性能优化技巧

    原文地址:MySQL 性能优化技巧 博客地址:www.extlight.com 一.背景 最近公司项目添加新功能,上线后发现有些功能的列表查询时间很久.原因是新功能用到旧功能的接口,而这些旧接口的 S ...

  2. mysql 优化配置 大批量数据插入_php导入大量数据到mysql性能优化技巧

    本文实例讲述了php导入大量数据到mysql性能优化技巧.分享给大家供大家参考.具体分析如下: 在mysql中我们结合php把一些文件导入到mysql中,这里就来分享一下我对15000条记录进行导入时 ...

  3. MySQL数据库优化技巧大全

    简介:MySQL数据库优化技巧大全 MySQL优化三大方向 ① 优化MySQL所在服务器内核(此优化一般由运维人员完成). ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进行 ...

  4. MySQL数据库优化技巧(二)

    在上一篇MySQL数据库优化技巧中,主要是从表设计的角度来优化,这篇将探讨一下其他的优化技巧. 1. 使用索引 索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行 ...

  5. web mysql数据库的持久连接_JavaWeb连接数据库MySQL的操作技巧

    数据库是编程中重要的一部分,它囊括了数据操作,数据持久化等各方面.在每一门编程语言中都占有相当大的比例. 本次,我以MySQL为例,使用MVC编程思想(请参阅我之前的博客).简单演示一下JavaWeb ...

  6. 【MySQL】37 个 MySQL 数据库小技巧

    1.概述 转载:37 个 MySQL 数据库小技巧,不看别后悔! 无论是运维.开发.测试,还是架构师,数据库技术是一个必备加薪神器,那么,一直说学习数据库.学MySQL,到底是要学习它的哪些东西呢? ...

  7. 菜鸟教程python3 mysql_python基础教程使用Python操作MySQL的小技巧

    1.获取插入数据的主键id import pymysql database = pymysql.connect( host="127.0.0.1", port=3306, user ...

  8. mysql里面使用技巧_MySQL的使用技巧

    MySQL的使用技巧 GROUP BYGROUP_CONCATCONCAT元数据视图表备份表空间占用情况 欢迎来到 来到大浪涛天的博客 ! 一.MySQL的使用技巧 1.GROUP BY的详细说明: ...

  9. 这一篇就够啦,带你了解MySQL的常用技巧

    前言 相关mysql 博客链接 这一篇就够啦,带你了解MySQL,SQL层面的优化 https://blog.csdn.net/qq_42292373/article/details/10891617 ...

最新文章

  1. pma mysql_Table ‘phpmyadmin.pma_table_uiprefs’ doesn’t exist mysql
  2. Vim as Python IDE on windows(转)
  3. Linux 服务器性能参数指标总结
  4. redirect和forward
  5. 眉骨高者为大贵之相_什么样才算富贵相?曾国藩的识人秘诀(组图)
  6. 知乎高赞:有哪些你看了以后大呼过瘾的数据分析书?
  7. Linux 文件系统IO性能优化
  8. 今天日期减去过去日期_汽车各零部件也有身份证,教你们如何看这些部件的quot;出生日期quot;...
  9. apache隐藏版本信息及设置网页缓存
  10. 创业型公司如何找有相同价值观的人(转)
  11. Java中Xml文件的解析
  12. Android Service中的android:process=:remote
  13. 支付宝支付时提示“长时间没操作,请重新发起请求”的错误处理
  14. POJ2545-丑数
  15. Make sure that `gem install libv8 -v '3.16.14.3'` succeeds before bundling.
  16. 微信客户聊天做到这四点,有效提高成单量
  17. 考研英语 - word-list-3
  18. 将时分秒的时间转为2020-11-12T20:00:00.000+08:00格式
  19. MAVEN dependencies与dependencyManagement的区别
  20. 新手引导页面html,网站新手引导tips提示功能开发经验分享

热门文章

  1. 碳排放zc汇总、碳排放权交易、省级碳排放效率、环保数据集(2007-2022年)
  2. AutoCAD 2021中文授权版
  3. TDS 以及 FDS 光谱系统的成像光束
  4. 国产数据库替换oracle,国产数据库能否替换oracle数据库?
  5. TFC 2017 腾讯Web前端大会 全场笔记
  6. cdoj 1334 郭大侠与Rabi-Ribi 贪心+数据结构
  7. 计算机组成原理 内容存储器,计算机组成原理实验(存储器).ppt
  8. 跟着 伍逸 老师学GDI+之Pen.DashCap、Pen.StartCap和Pen.EndCap属性
  9. (转载潘老师的博文)潘爱民:我只是个技术爱好者
  10. 数据可视化的展现形式有哪些