字符函数
substr(str,pos,len);截取len个从pos开始的字符,起始索引从1开始(limit索引是从0开始)
trim(【substr from】str)去前后指定字符,默认是去空格
left(sstr,len)从左边截取指定len个数的字符
lpad(str,substr,len)左填充
strcmp(str1,str2)比较两个字符的大小
instr(str,substr)获取substr在str中第一次出现的索引,从1开始
数学函数
cell(x)向上取整
floor(x)向下取整
round(x,d)四舍五入
mod(x,y)取余
truncate(x,d)截断,保留小数点后d位
日期函数
now();
curtime():只有时间
data_format(date,格式);格式日期为字符
str_to_date(str,格式)将字符转换成日期
datediff(daet1,date2)
流程控制函数
if(条件,表达式1,表达式2)
case 表达式
when 值1 then 结果1
when 值2 then 结果2
…
else 结果n
end
分组函数
sum,avg,max,min,count
- sum,avg只支持数值
- 忽略null
- count(*)结果集行数与count(1)效果一致,建议使用count(1),性能高一些
- count(字段)非空值个数;count(主键)=count(1)
- select count(distinct 字段)from表
分组查询
select 分组函数,分组字段
from 表名
where 分组前的筛选条件
group by 分组列表
having 分组后的筛选条件
order by 排序列表;