log2(x)
返回 x 的以 2 为底的对数:
mysql> select log2(65536);
-> 16.000000
mysql> select log2(-100);
-> null
log2() 通常可以用于计数出一个数字需要多少个比特位用于存储它。这个函数在 mysql 4.0.3 中被添加。在更早的版本中,可以使用 log(x)/log(2) 来代替它。
log10(x)
返回 x 以 10 为底的对数:
mysql> select log10(2);
-> 0.301030
mysql> select log10(100);
-> 2.000000
mysql> select log10(-100);
-> null
pow(x,y)
power(x,y)
返回 x 的 y 幂:
mysql> select pow(2,2);
-> 4.000000
mysql> select pow(2,-2);
-> 0.250000
sqrt(x)
返回 x 的非否平方根:
mysql> select sqrt(4);
-> 2.000000
mysql> select sqrt(20);
-> 4.472136
pi()
返回 pi 值(圆周率)。缺少显示 5 位小数,但是在 mysql 内部,为 pi 使用全部的双精度。
mysql> select pi();
-> 3.141593
mysql> select pi()+0.000000000000000000;
-> 3.141592653589793116
cos(x)
返回 x 的余弦,在这里,x 以弧度给出:
mysql> select cos(pi());
-> -1.000000
sin(x)
返回 x 的正弦,在这里,x 以弧度给出:
mysql> select sin(pi());
-> 0.000000
tan(x)
返回 x 的正切,在这里,x 以弧度给出:
mysql> select tan(pi()+1);
-> 1.557408
acos(x)
返回 x 的反余弦,更确切地说,返回余弦值为 x 的值。如果 x 不在 -1 到 1 之间的范围内,返回 null:
mysql> select acos(1);
-> 0.000000
mysql> select acos(1.0001);
-> null
mysql> select acos(0);
-> 1.570796
asin(x)
返回 x 的反正弦,更确切地说,返回正弦值为 x 的值。如果 x 不在 -1 到 1 之间的范围内,返回 null:
mysql> select asin(0.2);
-> 0.201358
mysql> select asin('foo');
-> 0.000000
atan(x)
返回 x 的反正切, 更确切地说,返回正切值为 x 的值:
mysql> select atan(2);
-> 1.107149
mysql> select atan(-2);
-> -1.107149
atan(y,x)
atan2(y,x)
返回两个变量 x 和 y 的反正切。它类似于计算 y / x 的反正切,除了两个参数的符号用于决定结果的象限:
mysql> select atan(-2,2);
-> -0.785398
mysql> select atan2(pi(),0);
-> 1.570796
cot(x)
返回 x 的余切:
mysql> select cot(12);
-> -1.57267341
mysql> select cot(0);
-> null
rand()
rand(n)
返回一个范围在 0 到 1.0 之间的随机浮点值。
如果一个整数参数 n 被指定,它被当做种子值使用(用于产生一个可重复的数值):
mysql> select rand();
-> 0.9233482386203
mysql> select rand(20);
-> 0.15888261251047
mysql> select rand(20);
-> 0.15888261251047
mysql> select rand();
-> 0.63553050033332
mysql> select rand();
-> 0.70100469486881
在一个 order by 子句中,不可以使用 rand() 值使用一个列,因为 order by 将多次重复计算列。从 mysql 3.23 开始,你可以使用:select * from table_name order by rand(),这有利于得到一个来自 select * from table1,table2 where a=b and c<d order by rand() limit 1000 的集合中的随机样本。
注意,在一个 where 子句中的 rand() 将在每次 where 执行时被重新计算。
rand() 并不是预期完美的随机数发生器,但是可以代替做为产生特别的随机数一个快速的方法,这样便于在两个不同平台下的同一 mysql 版本间移动。
least(x,y,...)
有两个或更多个参数,返回最小(最小值)的参数。参数使用下列规则进行比较:
-
如果返回值用于一个
integer 语境,或所有的参数是整数值,它们作为整数比较。
-
如果返回值用于一个
real 语境,或所有的参数均是实数值,它们作为实数被比较。
-
如果任何一个参数是字母大小写敏感的,参数作为大小写敏感的字符串进行比较。
-
在其它情况下,参数做为忽略大小写的字符中进行比较:
mysql> select least(2,0);
-> 0
mysql> select least(34.0,3.0,5.0,767.0);
-> 3.0
mysql> select least("b","a","c");
-> "a"
在早于 mysql 3.22.5 的版本中,你可以使用 min() 代替 least。