mysql5.7函数使用
1. 聚集函数
- avg:求平均值
- count:计数
- max:最大值
- min:最小值
- sum:最大值
注意:
聚集函数一般都是在group by 情况下使用的,使用group by查询显示只能显示分组字段(group by后的字段)和聚集函数。
不使用group by ,则可以把查询到的结果集看做一个组,也可以使用聚集函数,但是使用聚集函数查询到的结果都只有一行。
2. 字符串处理函数
-
concat(str1,str2):连接多个字符串函数,如果字符串中有为null的,则返回null。
-
concat_WS(分隔符,str1,str2): 连接多个字符串,如果字符串中有为null忽略。
-
group_concat([distinct] 非分组字段 [order by ] ,[ SEPARATOR]): 与分组函数使用
举例: SELECT a.index_type, GROUP_CONCAT( DISTINCT a.index_id ORDER BY a.index_id DESC SEPARATOR ':' )FROM hc_bank_index_score a GROUP BY a.index_type 结果: index_type index_id China 1,2,3,4,5,6
-
substr(str,from,to):字符串截取函数。
-
substring_index(str,分隔符,count):字符串截取,截取第‘count‘个分隔符后的字符串
举例: SELECT a.help_topic_id+1 AS num , SUBSTRING_INDEX(SUBSTRING_INDEX('aa,bb,cc,dd,ee,ff,hh,gg',',',a.help_topic_id+1),',',-1) AS value FROM mysql.help_topic a WHERE a.help_topic_id<=( (LENGTH('aa,bb,cc,dd,ee,ff,hh,gg')-LENGTH(REPLACE('aa,bb,cc,dd,ee,ff,hh,gg',',',''))) ) 结果: num value 1 aa 2 bb ...
-
length(str):获取字符串字节数函数。
-
char_length(str):获取字符串字符数函数
-
replace(字段名,需要替换字符,替换字符):字符串替换函数
-
条件判断函数
-
if(条件,result1,result2):类型Java中的三目表达式,条件为”true“为result1,条件为”false“为result2。
-
case when…then…else…end
1)case when 条件 then 结果 end : 满足条件,返回结果。 2)case when condition then result1 else result 2 end : 满足条件,返回result1,否则返回result2。 3)case when condition1 then result1 when condition2 then result2 ... else resultn+1 end :满足条件n,返回 resultn。
-
3. 数值处理
- round(字段名称,保留小数位数):数值四舍五入
- rand():随机数函数
4. 类型转换函数
- convert(str,类型) :类型转换
- cast(str as 类型):转换类型
- decimal(精度位数,小数位数):可四舍五入
- char
- date
5. 日期处理函数
-
current_date、curdate:获取日期
-
current_time 、curtime:获取时间
-
week(日期,模式):计算周
模式 | 一周的第一天 | 范围 | 起始结束描述 |
---|---|---|---|
1 | 星期一 | 1~53 | 1月1号重头开始计算第一周 |
3 | 星期一 | 1~52 | 52周结束后开始计算第一周 |
5 | 星期一 | 0~52 | 1月1号重头开始计算第一周 |
7 | 星期一 | 1~52 | 52周结束后开始计算第一周 |
0 | 星期日 | 0~53 | 1月1号重头开始计算第一周 |
2 | 星期日 | 1~53 | 53周结束后开始计算第一周 |
4 | 星期日 | 1~53 | 1月1号重头开始计算 |
6 | 星期日 | 1~52 | 52周结束后开始计算第一周 |
-
year()、quarter()、month()、day():获取日期的年、季、月、日
示例: 2019-12-23 year 2019 2019-12-23 quater 4 2019-12-23 month 12 2019-12-23 week 52(可选模式) 2019-12-23 day 23
-
weekday:返回一周的第几天,从星期一开始计算,下标从0开始计算。
-
dayname、monthname:返回这天是星期几的英文名称
-
date_format(日期字符串,日期格式):日期转字符
-
%Y :4位数表示年
-
%m:2位数表示月
-
%d:2位数表示日
-
…
注意: 日期字符串: 1)可以由四位表示年数字两位表示月两位表示日,如“20191212”。 2)以‘/’为分隔符数字串,如“2019/12/12”。 3)以‘-’为分隔符数字串,如“2019-12-12”。 4)满足以上要求时,数字串必须符合日期对数字的要求,否则返回null 日期格式:日期显示的格式,如要显示格式为“2019年12月12日”,则日期格式表达式为“%Y年%m月%d日”。
-
-
str_to_data (字符串,日期格式):字符串转日期
-
%Y :年
-
%m:月
-
%d:日
-
…
-