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=1024004、日期整数差: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年
- interval 1 day -- 1天
exm:30天内创建的数据
SELECT
*
FROM
t_user
WHERE
DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= create_time
本文介绍了SQL中的几个实用技巧,包括字符串截取、拼接、按逗号拼接列值、计算日期差以及进行日期加减操作。这些技巧对于日常数据库操作非常有用,能够帮助开发者更高效地处理数据。
2252

被折叠的 条评论
为什么被折叠?



