本文共 2750 字,大约阅读时间需要 9 分钟。
COUNT(col) 统计查询结果的行数
MIN(col) 查询指定列的最小值 MAX(col) 查询指定列的最大值 SUM(col) 求和,返回指定列的总和 AVG(col) 求平均值,返回指定列数据的平均值
数值型函数主要是对数值型数据进行处理,得到我们想要的结果,常用的几个列举如下,具体使用方法大家可以试试看。
ABS(x) //返回x的绝对值BIN(x) //返回x的二进制CEILING(x) //返回大于x的最小整数值EXP(x) //返回值e(自然对数的底)的x次方FLOOR(x) //返回小于x的最大整数值GREATEST(x1,x2,...,xn) //返回集合中最大的值LEAST(x1,x2,...,xn) //返回集合中最小的值LN(x) //返回x的自然对数LOG(x,y) //返回x的以y为底的对数MOD(x,y) //返回x/y的模(余数)PI() //返回pi的值(圆周率)RAND() //返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值ROUND(x,y) //返回参数x的四舍五入的有y位小数的值TRUNCATE(x,y) //返回数字x截短为y位小数的结果
字符串函数可以对字符串类型数据进行处理,在程序应用中用处还是比较大的,同样这里列举几个常用的如下:
LENGTH(s) 计算字符串长度函数,返回字符串的字节长度CONCAT(s1,s2...,sn) 合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个INSERT(str,x,y,instr) 将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果LOWER(str) 将字符串中的字母转换为小写UPPER(str) 将字符串中的字母转换为大写LEFT(str,x) 返回字符串str中最左边的x个字符RIGHT(str,x) 返回字符串str中最右边的x个字符TRIM(str) 删除字符串左右两侧的空格REPLACE 字符串替换函数,返回替换后的新字符串SUBSTRING 截取字符串,返回从指定位置开始的指定长度的字符换REVERSE(str) 返回颠倒字符串str的结果
ELT(N,str1,str2,str3,…)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()是FIELD()反运算。
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo'); -> 'ej'mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo'); -> 'foo'
小于后面的某个参数,就返回这个参数的前一个位置数字
INTERVAL(N,N1,N2,N3,…)
mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200); //(23小于30,30的位置是4,于是返回3) -> 3mysql> SELECT INTERVAL(10, 1, 10, 100, 1000); //(10等于10,10的位置是2,于是返回2) -> 2mysql> SELECT INTERVAL(22, 23, 30, 44, 200); -> 0
通常情况都是与elt一起使用
select elt(interval(age,10,20,30),'0-9','10-19','20-30') as altage,count(*) as num FROM user GROUP BY altage order by altage desc;-> altage num 20-30 700635 10-19 100313 0-9 99721 99331
from_unixtime()
select from_unixtime(1614827889);2021-03-04 11:18:09
select now();->now()2021-03-04 11:27:47
select UNIX_TIMESTAMP(now());->UNIX_TIMESTAMP(now())1614828608
不能定位到小时、分钟和秒。
时间大的放前面,小的放后面会返回正数
select datediff('2021-03-01 11:18:0','2021-03-05 11:18:0');-> -4
TIMESTAMPDIFF函数,有参数设置,可以精确到天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND),使用起来比datediff函数更加灵活。对于比较的两个时间,时间小的放在前面,时间大的放在后面。
select timestampdiff(day,'2021-03-01 11:19:00','2021-03-05 11:18:00'); //返回3天select timestampdiff(day,'2021-03-01 11:18:00','2021-03-05 11:18:00'); //返回4天select timestampdiff(hour,'2021-03-01 11:19:00','2021-03-05 11:18:00'); //相差 95小时select timestampdiff(minute,'2021-03-01 11:19:00','2021-03-05 11:18:00'); //相差 5759分钟select timestampdiff(second,'2021-03-01 11:19:00','2021-03-05 11:18:00'); //相差 345540秒select timestampdiff(year,'2021-03-01 11:19:00','2021-03-05 11:18:00'); //相差 1 年
转载地址:http://knbe.baihongyu.com/