mysql 常用数学函数总结
名称 | 功能 |
---|---|
abs( number ) | 取绝对值 |
sign( number ) | 获取数字的正负号 |
mod( number1, number2 ) | 取模,与%作用一样 |
round( number[, degree] ) | 对小数进行四舍五入 |
ceil( number ) | 向上取整 number> truncate(number)? truncate(number)+1 :truncate(number) |
floor( number ) | 向下取整 truncate(number) > 0 ? truncate(number) : truncate(number) -1 |
truncate( number, degree) | 小数截断 |
pow(x, y) | 求x的y次幂 |
sqrt( number ) | 求平方根 |
pi() | 获取圆周率 |
rand(seed) | 获取随机数,可以设置一个种子,一般以当前时间戳为seed |
least(num1, num2, num3,…) | 求最小数 |
greatest(num1, num2, num3,…) | 求最大数 |
1、abs( number )
作用: 求绝对值。
mysql> select abs(-3.14);
+------------+
| abs(-3.14) |
+------------+
| 3.14 |
+------------+
2、sign( number )
作用:求数字的符号。如果number为0,则返回0;大于0,则返回1;小于0,返回-1;
#非number类型数据,会尝试转为number类型。
mysql> select sign('123.4');
+---------------+
| sign('123.4') |
+---------------+
| 1 |
+---------------+
#如果参数的值为null,那么结果为null。
mysql> select sign(null)
-> ;
+------------+
| sign(null) |
+------------+
| NULL |
+------------+
3、mod( number1, number2 )
作用: 取模,number1 - number1/number2 *number2; 就是结果。被除数是正数,结果为正数;被除数为负数,则结果为负数;
mysql> select -12 % 5;
+---------+
| -12 % 5 |
+---------+
| -2 |
+---------+
4、round( number[, degree] )
作用:四舍五入;
#默认是四舍五入到小数点的第一位。
mysql> select round(3.89);
+-------------+
| round(3.89) |
+-------------+
| 4 |
+-------------+
#直接判断小数点后的第一位进行四舍五入。
mysql> select round(3.45);
+-------------+
| round(3.45) |
+-------------+
| 3 |
+-------------+
#也可以通过第二个参数指定四舍五入的位置。
mysql> select round(3.45,1);
+---------------+
| round(3.45,1) |
+---------------+
| 3.5 |
+---------------+
5、ceil( number )
作用:向上取整 [number] <= number < [number]+1
mysql> select ceil(3.14);
+------------+
| ceil(3.14) |
+------------+
| 4 |
+------------+
6、floor( number )
作用:向下取整 [number]-1 < number <= [number]
mysql> select floor(3.14);
+-------------+
| floor(3.14) |
+-------------+
| 3 |
+-------------+
7、truncate( number, degree)
作用:小数截断。
mysql> select truncate(3.14,1);
+------------------+
| truncate(3.14,1) |
+------------------+
| 3.1 |
+------------------+
8、pow(x, y)
作用:求x的y次方。
mysql> select pow(3,4);
+----------+
| pow(3,4) |
+----------+
| 81 |
+----------+
9、sqrt( number )
作用:求二次方根。
mysql> select sqrt(4);
+---------+
| sqrt(4) |
+---------+
| 2 |
+---------+
10、pi()
作用:获取圆周率。
mysql> select pi();
+----------+
| pi() |
+----------+
| 3.141593 |
+----------+
11、rand(seed)
作用:获取随机数。0~1的取值。
mysql> select rand(rand());
+---------------------+
| rand(rand()) |
+---------------------+
| 0.40540353712197724 |
+---------------------+
12、least(num1, num2, num3,…)
作用:获取最小数。
mysql> select least(1,2,3,4,1,2,3);
+----------------------+
| least(1,2,3,4,1,2,3) |
+----------------------+
| 1 |
13、greatest(num1, num2, num3,…)
作用: 获取最大数。
mysql> select greatest(1,2,3,4,1,2,3);
+-------------------------+
| greatest(1,2,3,4,1,2,3) |
+-------------------------+
| 4 |
+-------------------------+