mysql常用函数(持续更新中。。。)

本文介绍了SQL中的几个实用技巧,包括字符串截取、拼接、按逗号拼接列值、计算日期差以及进行日期加减操作。这些技巧对于日常数据库操作非常有用,能够帮助开发者更高效地处理数据。

1、字符串截取:SUBSTR(字符串,起始位置,长度)

     exm:SUBSTR('abcd',2,1)  输出:b

2、字符串拼接:concat(str1,str2,...)

     exm:CONCAT('%',#{userName},'%')

3、将一个组的的列按','拼接返回:group_concat()

     exm:返回用户表中所有id

 SELECT
	GROUP_CONCAT(id)
 FROM
	t_user

     补充用法:可以设置排序和分隔符 GROUP_CONCAT(user_id order by create_time separator ',')

     注:GROUP_CONCAT有最大默认长度限制,超过限制字符串会被截取。

            可以通过以下语句获得最大长度限制:

      SELECT @@global.group_concat_max_len

             增加最大长度方法:

             在msql配置文件中加上

             group_concat_max_len = 102400 #你要的最大长度

                        或

             执行语句

      
SET GLOBAL group_concat_max_len=102400

4、日期整数差:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

     返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。

     interval:

  • FRAC_SECOND。表示间隔是毫秒
  • SECOND。秒
  • MINUTE。分钟
  • HOUR。小时
  • DAY。天
  • WEEK。星期
  • MONTH。月
  • QUARTER。季度
  • YEAR。年

    exm:根据生日计算年龄TIMESTAMPDIFF(YEAR, '2017-02-23', CURDATE())

5、日期加减时间间隔,加:DATE_ADD(date,时间间隔);减:DATE_SUB(date,时间间隔)

      时间间隔:

              • interval 1 day   -- 1天
              • interval 1 hour  -- 1小时
              • interval 1 minute  -- 1分钟
              • interval 1 second  --  1秒
              • interval 1 microsecond  --  1毫秒
              • interval 1 week  -- 1周
              • interval 1 month  --  1个月
              • interval 1 quarter  -- 1季
              • interval 1 year   -- 1年

    exm:30天内创建的数据

SELECT
	*
FROM
	t_user
WHERE
	DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= create_time


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值