点击查看官方文档:
一、数学函数
- BIN(x) //数字转成二进制(OCT返回八进制,HEX返回十六进制)
- PI() //输出圆周率
- SIGN(x) 返回代表数字x的符号的值
SQRT(x) 返回一个数的平方根 - POW(6,2)
select POW(6,2) //返回6的2次方
- ABS(x) 返回x的绝对值
- EXP(x) 返回值e(自然对数的底)的x次方
- LN(x) 返回x的自然对数
- LOG(x,y)返回x的以y为底的对数
取模/随机数/四舍五入...
- MOD(x,y) //取x和y的模
-
RAND() //输出0-1之间的随机数
-
ROUND(x,y) //参数x先四舍五入,在返回y位小数的值
-
TRUNCATE(x,y) //保留y位小数(与ROUND最大的区别是不会进行四舍五入)
最大最小相关
- CEILING(x) //返回不小X的最小整数值,返回值转为一个BIGINT;正数:向上取整,负数:向下取整
- FLOOR(x) //返回不大于X的最大整数值,返回值转为一个BIGINT;正数:向下取整,负数:向下取整
- GREATEST(x1,x2,...,xn) //找每行n列中最大的值
- LEAST(x1,x2,...,xn) //找集合中最小的值
角度相关
- RADIANS(x) //将角度转换为弧度
SELECT RADIANS(180)
- DEGREES(x) //将弧度转换为角度
SELECT DEGREES(3.1415926535898)
二、聚合函数(常用于GROUP BY从句的SELECT查询中)
- AVG(col)返回指定列的平均值
- COUNT(col)返回指定列中非NULL值的个数
count(*) //将返回表格中所有存在的行的总数包括值为null的行,
count(列名) //将返回表格中不包括null以外的所有行的总数(有默认值的列也会被计入)
count(1) //1代表你这个查询的表里的第一个字段
这里用1,也是为了方便,当然如果数据量较大的话,也可以提高速度,因为写count(*)的话会所有列扫描,这里用1的话或者用字段名的话,只扫描你写的那个列。不包括NULL列。
- MIN(col)返回指定列的最小值
- MAX(col)返回指定列的最大值
- SUM(col)返回指定列的所有值之和
- GROUP_CONCAT(col) 返回由属于一组的列值连接组合而成的结果
三、字符串函数
替换
- INSERT(str,x,y,instr) //替换字符串。将str第x位置开始,y个字符长的,子串替换为字符串instr。x的位置从1开始
REPLACE(s,s1,s2) // 将字符串s2替代字符串s中的字符串s1
SELECT REPLACE('abc','a','x') //输出xbc
填充
LPAD(s1,len,s2) //字符串s2来填充s1的开始处,使字符串长度达到len
SELECT LPAD('abc',5,'x') //会输出xxabc,虽然只输入了一个x,但系统会根据长度5,而自动补全
RPAD(s1,len,s2) //字符串s2来填充s1的结尾处,使字符串的长度达到len
SELECT RPAD('abc',5,'x') //会输出xxabc,虽然只输入了一个x,但系统会根据长度5,而自动补全
查找
- FIND_IN_SET(str,list) //查找字符串。list的格式是以逗号分隔的,如果匹配上str,返回str在list中的位置。返回的位置最小是1
- POSITION(substr,str) //首次出现的位置。返回子串substr在字符串str中第一次出现的位置