所有的数学函数在一个出错的情况下返回NULL。
- 单目减。改变参数的符号。 mysql>select-2;
注意,如果这个操作符与一个BIGINT使用,返回值是一个BIGINT!这意味着你应该避免在整数上使用-,那可能有值-2^63! ABS(X) 返回X的绝对值。 mysql>selectABS(2); ->2 mysql>selectABS(-32); ->32
该功能可安全用于BIGINT值。
SIGN(X) 返回参数的符号,为-1、0或1,取决于X是否是负数、零或正数。 mysql>selectSIGN(-32); ->-1 mysql>selectSIGN(0); ->0 mysql>selectSIGN(234); ->1
MOD(N,M)
% 模(类似C中的%操作符)。返回N被M除的余数。 mysql>selectMOD(234,10); ->4 mysql>select253%7; ->1 mysql>selectMOD(29,9); ->2
这个函数可安全用于BIGINT值。 FLOOR(X) 返回不大于X的最大整数值。
mysql>selectFLOOR(1.23); ->1 mysql>selectFLOOR(-1.23); ->-2
注意返回值被变换为一个BIGINT! CEILING(X) 返回不小于X的最小整数值。 mysql>selectCEILING(1.23); ->2 mysql>selectCEILING(-1.23); ->-1
注意返回值被变换为一个BIGINT!
ROUND(X) 返回参数X的四舍五入的一个整数。 mysql>selectROUND(-1.23); ->-1 mysql>selectROUND(-1.58); ->-2 mysql>selectROUND(1.58); ->2
注意返回值被变换为一个BIGINT!
ROUND(X,D) 返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。 mysql>selectROUND(1.298,1); ->1.3 mysql>selectROUND(1.298,0); ->1
注意返回值被变换为一个BIGINT!
EXP(X) 返回值e(自然对数的底)的X次方。 mysql>selectEXP(2); ->7.389056 mysql>selectEXP(-2); ->0.135335
LOG(X) 返回X的自然对数。 mysql>selectLOG(2); ->0.693147 mysql>selectLOG(-2); ->NULL
如果你想要一个数字X的任意底B的对数,使用公式LOG(X)/LOG(B)。
LOG10(X) 返回X的以10为底的对数。 mysql>selectLOG10(2); ->0.301030 mysql>selectLOG10(100); ->2.000000 mysql>selectLOG10(-100); ->NULL
POW(X,Y)
POWER(X,Y) 返回值X的Y次幂。 mysql>selectPOW(2,2); ->4.000000 mysql>selectPOW(2,-2); ->0.250000 SQRT(X) 返回非负数X的平方根。 mysql>selectSQRT(4); ->2.000000 mysql>selectSQRT(20); ->4.472136
PI() 返回PI的值(圆周率)。 mysql>selectPI(); ->3.141593
COS(X) 返回X的余弦,在这里X以弧度给出。 mysql>selectCOS(PI()); ->-1.000000
SIN(X) 返回X的正弦值,在此X以弧度给出。 mysql>selectSIN(PI()); ->0.000000
TAN(X) 返回X的正切值,在此X以弧度给出。 mysql>selectTAN(PI()+1); ->1.557408
ACOS(X) 返回X反余弦,即其余弦值是X。如果X不在-1到1的范围,返回NULL。 mysql>selectACOS(1); ->0.000000 mysql>selectACOS(1.0001); ->NULL mysql>selectACOS(0); ->1.570796
ASIN(X) 返回X反正弦值,即其正弦值是X。L如果X不在-1到1的范围,返回NULL。 mysql>selectASIN(0.2); ->0.201358 mysql>selectASIN('foo'); ->0.000000
ATAN(X) 返回X的反正切值,即其正切值是X。 mysql>selectATAN(2); ->1.107149 mysql>selectATAN(-2); ->-1.107149 ATAN2(X,Y) 返回2个变量X和Y的反正切。它类似于计算Y/X的反正切,除了两个参数的符号被用来决定结果的象限。 mysql>selectATAN(-2,2); ->-0.785398 mysql>selectATAN(PI(),0); ->1.570796 COT(X) 返回X的余切。 mysql>selectCOT(12); ->-1.57267341 mysql>selectCOT(0); ->NULL
RAND()
RAND(N) 返回在范围0到1.0内的随机浮点值。如果一个整数参数N被指定,它被用作种子值。 mysql>selectRAND(); ->0.5925 mysql>selectRAND(20); ->0.1811 mysql>selectRAND(20); ->0.1811 mysql>selectRAND(); ->0.2079 mysql>selectRAND(); ->0.7888
你不能在一个ORDERBY子句用RAND()值使用列,因为ORDERBY将重复计算列多次。然而在MySQL3.23中,你可以做:SELECT*FROMtable_nameORDERBYRAND(),这是有利于得到一个来自SELECT*FROMtable1,table2WHEREa=bANDc LEAST(X,Y,...) 有2和2个以上的参数,返回最小(最小值)的参数。参数使用下列规则进行比较: 如果返回值被使用在一个INTEGER上下文,或所有的参数都是整数值,他们作为整数比较。 如果返回值被使用在一个REAL上下文,或所有的参数是实数值,他们作为实数比较。 如果任何参数是一个大小敏感的字符串,参数作为大小写敏感的字符串被比较。 在其他的情况下,参数作为大小写无关的字符串被比较。 mysql>selectLEAST(2,0); ->0 mysql>selectLEAST(34.0,3.0,5.0,767.0); ->3.0 mysql>selectLEAST("B","A","C"); ->"A"
在MySQL3.22.5以前的版本,你可以使用MIN()而不是LEAST。
GREATEST(X,Y,...) 返回最大(最大值)的参数。参数使用与LEAST一样的规则进行比较。 mysql>selectGREATEST(2,0); ->2 mysql>selectGREATEST(34.0,3.0,5.0,767.0); ->767.0 mysql>selectGREATEST("B","A","C"); ->"C"
在MySQL在3.22.5以前的版本,你能使用MAX()而不是GREATEST. DEGREES(X) 返回参数X,从弧度变换为角度。 mysql>selectDEGREES(PI()); ->180.000000 RADIANS(X) 返回参数X,从角度变换为弧度。 mysql>selectRADIANS(90); ->1.570796
TRUNCATE(X,D) 返回数字X,截断为D位小数。如果D为0,结果将没有小数点或小数部分。 mysql>selectTRUNCATE(1.223,1); ->1.2 mysql>selectTRUNCATE(1.999,1); ->1.9 mysql>selectTRUNCATE(1.999,0); ->1
|