MYSQL常用函数总结

MYSQL常用函数总结第一部分 MYSQL 中常用的函数 PS 总结的有点潦草 适合有一定基础的总结性学习 一 排序函数 RANK 1 1 3 在计算排序时 若存在相同的位次 会跳过之后的位次 DENSE RANK 1 1 2 在计算排序时 若存在相同的位次 不会跳过之后的位次 ROW NUMBER 1 2 3 这个函数赋予唯一的连续位次二 日期函数 DATEDIFF data1 date2 date1 date2DATE FORMAT date format 日期格式转换 TI

第一部分 MYSQL中常用的函数

(PS:总结的有点潦草,适合有一定基础的总结性学习)

一、排序函数

RANK():1,1,3 在计算排序时,若存在相同的位次,会跳过之后的位次

DENSE_RANK():1,1,2 在计算排序时,若存在相同的位次,不会跳过之后的位次

ROW_NUMBER():1,2,3 这个函数赋予唯一的连续位次

二、日期函数

DATEDIFF(data1,date2):date1-date2

DATE_FORMAT(date,format):日期格式转换

TIMESTAMPDIFF(second/minute/hour/day/week/month,date1,date2):date2-date1

DATE_ADD(curdate(),interval 1 day):返回当前日期增加1天后的日期

DATE_SUB(curdate(),interval 1 day):返回当前日期减少1天的日期

YEAR(date1)、MONTH(date1) 、DAY(date1):返回年、月、日 。例如:DAY(‘2021-08-02’):返回的是2

LAST_DAY(date1):返回当月的最后一天 。例如:LAST_DAY(‘2021-08-02 11:41:01’) 返回:2021-08-31

[小tips:DAY(LAST_DATE(date1))返回这个月的天数]

三、字符串函数

——转换

Lcase(str):将字符串str的所有字母变成小写字母

Ucase(str):将字符串str的所有字母变成大写字母

——计算长度

Length(str):计算str的长度

Char_length():计算字符串的长度

——位置

Locate(substr,str):返回子串substr在字符串中第一次出现的位置,如果子串substr在字符串str中不存在,则返回0;

POSITION(substr IN str):返回子串substr在字符串str中第一次出现的位置,如果字符substr在字符串中不存在,与locate函数作用一样。

——截取

Right(s,n):返回字符串s的后n个字符

Left(s,n):返回字符串s的前n个字符

Mid(s,n,len):返回从字符串s的n位置截取的长度为len的子字符串,同substring(s,n,len)

Substring_index(str,n,m):返回字符串str从第n个字符截取到第m个字符

Substring_index(str,separator,count),截取count个分隔符之前的字符串,如果count为正,则从左边开始截取,如果count为负,则从右边开始截取

Replace(str,n,m):将字符串str中的第n个字符替换成m字符

Replace(s,s1,s2):替换函数,用s2替换s中的s1

——连接

group_concat([DISTINCT] 要连接的字段 [Order BY  排序字段 ASC/DESC] [Separator ‘分隔符’])  这个函数必须和group by语句一起使用,将goup by产生的一个分组中的值连接起来,返回一个字符串结果

CONCAT_WS(’分隔符‘,str1,str2) 第一个参数为分隔符,相比于concat函数可以一次性指定分隔符

CONCAT(str1,str2,…) :将多个字符串连接成一个字符串

——去除空格

Rtrim():去除字符串右端空格

Ltrim():去除字符串左端空格

Trim():去除字符串两端空格

——匹配

Like 完全匹配

Rlike 不完全匹配,只要字段中的值存在要查找的部分,就会被选择出来

Regexp 不完全匹配

. 匹配任意单个字符 

* 匹配0个或者多个前一个得到的字符

[] 匹配任意一个[]内的字符

^ 匹配开头

$ 匹配结尾

{n} 匹配前一个字符反复n次

[^abc] [!abd] 不包含括号中的字符

a|b|c 匹配a或者b或者c

四、分析函数

LEAD(x)、LAG(x):分别返回传入的列x对于当前行的 下一行/前一行 的值

LEAD(x,y)、LAG(x,y):分别返回传入的列x对于当前的 后y行/前y行 的值

First_Value(x)、Last_value(x):分别返回列x的 第一个值/最后一个值

Nth_value(x,n):返回x列的第n个值

注意:last_value nth_value 通常需要把window frame 修改成 rows between unbounded preceding and unbounded following

五、其他函数

 Ceil(x):返回大于或者等于x的最小整数

Floor(x):返回小于或者等于x的最大整数

CAST(expression AS date_type)将一种数据类型显示转换成另一种数据类型,可转换的数据类型为:二进制binary、字符型char、日期date、时间time、日期和时间datetime、浮点数decimal、整数signed、无符号整数unsigned。在创建表格的时候,

SELECT * FROM 表名 LIMIT 3,1; #从第4条数据开始取数,取1条数据,即只取第四条 SELECT * FROM 表名 LIMIT 1 OFFSET 3; #从第4条数据开始取数,取1条数据,即只取第四条 SELECT * FROM 表名 LIMIT 3,2; #从第4条数据开始取数,取2条数据,即取第4条,第5条 SELECT * FROM 表名 LIMIT 2 OFFSET 3; #从第4条数据开始取数,取2条数据,即取第4条,第5条

LIMIT1 OFFSET2:从第3条数据开始取数,返回1条记录,类似于LIMIT 2,1

LIMIT1,3  :分页,从第2条记录开始,返回3条记录,类似于LIMIT 3 OFFSET 1

IF(true,a,b):IF 函数,如果为真,则返回a,否则,返回b

IFNULL(expression1,expression2): 如果expression1不为null,则返回expression1,否则返回expression2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222194.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:21
下一篇 2026年3月17日 下午4:21


相关推荐

  • leetcode 回文数_将一个整数转换为字符串

    leetcode 回文数_将一个整数转换为字符串原题链接请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“1

    2022年8月9日
    8
  • Matlab一维小波分解流程

    Matlab一维小波分解流程Matlab 一维小波分解流程 Matlab 一维小波分解流程 1 将待分解变量 x 放入工作空间 2 在命令窗口输入 wavemenu 3 在弹出的对话框里选择 One Dimensional gt Wavelet 1 D 4 在弹出的对话框里选择 File gt ImportfromWo gt ImportSignal 以导入信号 5 在弹出的对话框里选择待分解变量 x Filter 不变

    2026年3月26日
    2
  • prefetch 和preload_preload和prefetch

    prefetch 和preload_preload和prefetch1 preload 和 prefetch 的出现为我们提供了可以更加细粒度地控制浏览器加载资源的方法 2 preload link 标签的 preload 是一种声明式的资源获取请求方式 用于提前加载一些需要的依赖 并且不会影响页面的 onload 事件 使用方式如下 css 加载后立即生效其中 rel 属性值为 preload as 属性用于规定资源的类型 并根据资源类型设置 Accep 请求头 以便能够使用正常

    2026年3月20日
    1
  • getClassLoader能否为null

    getClassLoader能否为null前言我们Javaer都知道类想要被加载是需要一个个ClassLoader来执行的,并且类加载的方案叫双亲委派模式,说是双亲,其实就是单亲,可能我们最初的翻译人想让我们的加载器的家庭更完整吧,所以翻译成双亲。默认的类加载器包括BootstrapClassLoader、ExtClassLoader、AppClassLoader,他们都定义在在rt.jar中的sun….

    2022年5月9日
    37
  • sql修改语句_数据透视表中的字段能不能进行修改

    sql修改语句_数据透视表中的字段能不能进行修改HSQL修改tablecolumn的语法

    2025年11月27日
    4
  • k8s 资源管理_pod容器间调用命令

    k8s 资源管理_pod容器间调用命令k8s管理器介绍yaml资源管理器介绍管理器介绍在Kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。Kubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务。所谓的部署服务,其实就是在Kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。Kubernetes的最小管理单元是Pod而不是容器,所以只能将容器放在Pod中,而Kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod提供服务之后

    2022年8月9日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号