MySql新了解的语法内容

注:从别的博客中了解整理

  • 双大于号 (>> ):位移操作符

x >> y :表示将x的二进制右移y位,即x / (2的y次方),向下取整。

  • & :位运算符

将两个数的每一位进行与运算,只能用于整型和bit数据类型。

  •  LPAD、 RPAD函数:左补齐、右补齐

LPAD(str1,length,str2):str1字符串​​长度不足length,用str2左补齐;长度超过length,截取至length长度。

  • substr函数:截取字符串(与substring函数相同)

SUBSTR (str, pos)  另一种写法是 SUBSTR(str from pos)
截取从pos位置开始到最后的所有str字符串

SUBSTR (str, pos, len) 另一种写法是SUBSTR(str from pos for len)

参数说明:

  • str为列名/字符串;
  • pos为起始位置;mysql中的起始位置pos是从1开始的;如果为正数,就表示从正数的位置往下截取字符串(起始坐标从1开始),反之如果起始位置pos为负数,那么 表示就从倒数第几个开始截取;
  • len为截取字符个数/长度。
select substr('2023-09-13',6);    -- 返回结果09-13
select substr('2023-09-13'from 6);

select substr('2023-09-13',6,2);  -- 返回结果09
select substr('2023-09-13'from 6 for 2);

select substr('2023-09-13',-2,2); -- 返回结果13

  • instr函数:获取子字符串第一次出现位置的索引(从1开始)。如果没有找到,返回0。instr(str, substr);

  • TIMESTAMPDIFF函数:计算两个日期之间的时间差(datetime_expr2-datetime_expr1)。

datetime_expr可以是DATE或DATETIME类型。

unit是比较的时间差单位:SECOND、MINUTE、HOUR、DAY、MONTH、QUARTER(季度)、YEAR

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
select TIMESTAMPDIFF(year,'2023-09-13','2021-01-02');   -- 返回-2
select TIMESTAMPDIFF(year,'2023-09-13',CURDATE());  --比较当前日期和'2023-09-13'年份差几年

  • INTERVEL()函数
-- 返回大于50的第一个数字的位置,从20开始,20的位置是0。所以结果返回4
SELECT INTERVAL(50,20,32,38,40,56,55); 
  •  date_sub()函数和interval联合使用
select date_sub(curdate(), interval 1 day);   -- 当前日期2023-12-29,减去间隔一天,返回2023-12-28;
select date_format(date_sub(curdate(), interval 1 day), '%Y%m%d');  -- 当前日期2023-12-29,减去间隔一天,返回2023-12-28;使用日期格式显示为20231228
REPLACE()函数用于替换字符串中的某个子串
REPLACE(str, from_str, to_str)

select replace('儿童|少年|青年','|','、')from dual;   -- 输出 儿童、少年、青年
  • str:原字符串。

  • from_str:需要被替换的子串。如果from_strstr中不存在,那么str不会发生任何改变。

  • to_str:替换后的子串

  • 例子:

    假设我们有一个表example,其中有一个字段data,我们想要将data字段中的所有'apple'替换为'orange'

  • SET data = REPLACE(data, 'apple', 'orange');

    执行上述SQL语句后,example表中所有data字段的'apple'将被替换为'orange'

  • ROW_NUMBER()
  • ROW_NUMBER() 是一个窗口函数,它为结果集中的每一行分配一个唯一的序号,序号从1开始,按照指定的顺序递增。这个函数通常与 OVER() 子句一起使用,以定义窗口函数的作用域和排序的顺序。
  • ROW_NUMBER() 函数的基本语法如下:

  • SELECT column1, column2, ..., ROW_NUMBER() OVER (
      PARTITION BY partition_expression
      ORDER BY sort_expression [ASC | DESC]
    ) AS row_num
    FROM table_name;

    column1, column2, ... 是你想要选择的列。

  • PARTITION BY partition_expression 定义了窗口函数的分区,如果省略,则整个结果集作为一个分区。
  • ORDER BY sort_expression [ASC | DESC] 定义了窗口函数的排序顺序,可以指定升序(ASC,默认值)或降序(DESC)。
concat() 和concat_ws()

concat()连接字符串

concat_ws()使用分隔符连接

select	concat('北京','上海','天津');     -- 北京上海天津
select 	concat_ws(',','北京','上海','天津');    --北京,上海,天津

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值