记录Mysql中的一些函数

Posted by ni on February 24, 2025
本文共1785 字 | 大约需要5.95 分钟阅读

记录一些在力扣中用到的函数

  • CONCAT(str1, str2, …):可以将多个字符串拼接在一起
  • LEFT(str, length):从左开始截取字符串str,截取length个
  • UPPER(str):将字符串str中所有字符转为大写
  • LOWER(str):将字符串str中所有字符转为小写
  • SUBSTRING(str, begin, end):截取字符串,end 不写默认为空,从第begin个到第end个
  • GROUP_CONCAT([DISTINCT] 列 [OREDER BY 列] [sepapator ‘分隔符’]):将该列元素取出,按分隔符连接在一起(一般配合GROUP BY使用)
  • SELECT 要匹配的字符/字段 REGEXP ‘正则操作符’:选择符合判断的选项
  • SELECT1 Union SELECT2 :产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集
  • UNION 和 UNION ALL 的区别:union会进行查重去除重复,union all不查重
  • rank() over:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续即1,1,3,4,5,5,7
  • dense_rank() over:查出指定条件后进行排名,条件相同排名相同,排名不间断连续,即1,1,2,3,3,4
  • row_number() over:查出指定条件后进行排名,条件相同排名也不相同(无并列),排名间断不连续
  • row_number() over([partition by value_expression, …n] order by columnName):按照columnName排序,按 value_expression, …n 分组
  • DATEDIFF(date1, date2):算出date1-date2的值
  • TIMESTAMPDIFF(DAY HOUR MINUTE,值1, 值2):可以计算相差天数、小时、分钟和秒
  • adddate(date, INTERVAL value addunit):将指定时间间隔添加到日期值date
  • ROUND(值/计算,保留几位小数):四舍五入
  • coalesce( 值1 ,值2,… ):返回参数中的第一个非空表达式(从左到右)
  • MOD(值1,值2):值1 % 值2(求余数)
  • DATE_FORMAT(date, format):用于以不同的格式显示日期/时间数据。date参数是合法日期,format规定日期/时间的输出格式 OVER():窗口函数

  • 格式:

    • OVER(PARTITION BY <用于分组的列名>

    • ORDER BY<按序叠加的列名>

    • ROWS <窗口滑动的数据范围>)

  • <窗口滑动的数据范围>用来限定操作所运用的数据范围,具体如下:
    • 当前行 - current row

    • 之前的行 - preceding

    • 之后的行 - following

    • 无界限 - unbounded

    • 表示从前面的起点 - unbounded preceding

    • 表示到后面的终点 - unbounded following

    • 举例:

    • 取当前行和前五行:ROWS between 5 preceding and current row –共6行

    • 取当前行和后五行:ROWS between current row and 5 following –共6行

    • 取前五行和后五行:ROWS between 5 preceding and 5 following –共11行