中國最大的web開發資源網站及技術社區,
所有的數學函數在一個出錯的情況下返回null。
-
單目減。改變參數的符號。
mysql> select - 2;
注意,如果這個操作符與一個bigint使用,返回值是一個bigint!這意味著你應該避免在整數上使用-,那可能有值-2^63!
abs(x)
返回x的絕對值。
mysql> select abs(2);
-> 2
mysql> select abs(-32);
-> 32
該功能可安全用于bigint值。
sign(x)
返回參數的符號,為-1、0或1,取決于x是否是負數、零或正數。
mysql> select sign(-32);
-> -1
mysql> select sign(0);
-> 0
mysql> select sign(234);
-> 1
mod(n,m)
%
模 (類似c中的%操作符)。返回n被m除的余數。
mysql> select mod(234, 10);
-> 4
mysql> select 253 % 7;
-> 1
mysql> select mod(29,9);
-> 2
這個函數可安全用于bigint值。
floor(x)
返回不大于x的最大整數值。
mysql> select floor(1.23);
-> 1
mysql> select floor(-1.23);
-> -2
注意返回值被變換為一個bigint!
ceiling(x)
返回不小于x的最小整數值。
mysql> select ceiling(1.23);
-> 2
mysql> select ceiling(-1.23);
-> -1
注意返回值被變換為一個bigint!
round(x)
返回參數x的四舍五入的一個整數。
mysql> select round(-1.23);
-> -1
mysql> select round(-1.58);
-> -2
mysql> select round(1.58);
-> 2
注意返回值被變換為一個bigint!
round(x,d)
返回參數x的四舍五入的有d為小數的一個數字。如果d為0,結果將沒有小數點或小數部分。
mysql> select round(1.298, 1);
-> 1.3
mysql> select round(1.298, 0);
-> 1
注意返回值被變換為一個bigint!
exp(x)
返回值e(自然對數的底)的x次方。
mysql> select exp(2);
-> 7.389056
mysql> select exp(-2);
-> 0.135335
log(x)
返回x的自然對數。
mysql> select log(2);
-> 0.693147
mysql> select log(-2);
-> null
如果你想要一個數字x的任意底b的對數,使用公式log(x)/log(b)。
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的值(圓周率)。
mysql> select pi();
-> 3.141593
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。l如果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
atan2(x,y)
返回2個變量x和y的反正切。它類似于計算y/x的反正切,除了兩個參數的符號被用來決定結果的象限。
mysql> select atan(-2,2);
-> -0.785398
mysql> select atan(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.5925
mysql> select rand(20);
-> 0.1811
mysql> select rand(20);
-> 0.1811
mysql> select rand();
-> 0.2079
mysql> select rand();
-> 0.7888
你不能在一個order by子句用rand()值使用列,因為order by將重復計算列多次。然而在mysql3.23中,你可以做: select * from table_name order by rand(),這是有利于得到一個來自select * from table1,table2 where a=b and c
least(x,y,...)
有2和2個以上的參數,返回最小(最小值)的參數。參數使用下列規則進行比較:
如果返回值被使用在一個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。
greatest(x,y,...)
返回最大(最大值)的參數。參數使用與least一樣的規則進行比較。
mysql> select greatest(2,0);
-> 2
mysql> select greatest(34.0,3.0,5.0,767.0);
-> 767.0
mysql> select greatest("b","a","c");
-> "c"
在mysql在 3.22.5 以前的版本, 你能使用max()而不是greatest.
degrees(x)
返回參數x,從弧度變換為角度。
mysql> select degrees(pi());
-> 180.000000
radians(x)
返回參數x,從角度變換為弧度。
mysql> select radians(90);
-> 1.570796
truncate(x,d)
返回數字x,截斷為d位小數。如果d為0,結果將沒有小數點或小數部分。
mysql> select truncate(1.223,1);
-> 1.2
mysql> select truncate(1.999,1);
-> 1.9
mysql> select truncate(1.999,0);
-> 1