所有的數學函式在乙個出錯的情況下返回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
Mysq篇 了解Mysql(一)
in關鍵字和exists關鍵字select from a where a.idin select id from b 對外表a使用索引效率高,建議a為大表。select from a whereexists select from b where a.id b.id 對內表b使用索引效率高,建議b為...
mysql 平方 MySQL好用的數學函式
最近專案很忙,分給我的功能都比較複雜,還好能應付的下來。在工作的過程中,我發現使用mysql的自帶函式能夠極大的減少程式的複雜度。這是必然的,使用mysql的函式,能夠在程式裡面省卻很多的迴圈遍歷。但是網上有的專家說,在mysql裡面使用數學以及字串函式,會使得mysql的效率變慢,我想這是必然的。...
mysql 密碼清楚 linux清除MYSQL密碼
1.先以root使用者登入系統 2.關閉mysql服務或程序 service d stop killall mysqld 3.特權啟動mysql usr local mysql bin mysqld safe skip grant tables or mysqld safe skip grant t...