日期:2014-05-16 浏览次数:20917 次
函数和语法: ?mod(n,m) ?= n%m 求余
?? ? ? ? ? ? ? ? ? ?位运算 ?| ?& ?~ ?分别为 位或, 位与, 位取反
BIT_COUNT(N) 求n的 位的个数
?
逻辑运算 ?not ! , or || , and &&,
?
比较运算 ?< , ?> ?, = , <> ?!= ?, <= , >= , <=>安全等于(可用于null的比较), is null, is not null
?
between ? n ?and m; ? in (...), ?not in (...)?
?
ISNULL(expr)
expr是NULL,ISNULL()返回1,否则它返回0。COALESCE(list)
NULL的单元。
mysql> select COALESCE(NULL,1);
-> 1
mysql> select COALESCE(NULL,NULL,NULL);
-> NULL
INTERVAL(N,N1,N2,N3,...)
N< N1,返回0,如果N<
N2,返回1等等。所有的参数被当作整数。为了函数能正确地工作,它要求N1<N2<N3<
...<Nn。这是因为使用二进制搜索(很快)。
mysql> select INTERVAL(23, 1, 15, 17, 30, 44, 200);
-> 3
mysql> select INTERVAL(10, 1, 10, 100, 1000);
-> 2
mysql> select INTERVAL(22, 23, 30, 44, 200);?
?
?
字符串匹配 :like 关键字 % 匹配任意字符, _ 精确匹配一个字符
?? ? ? ? ? ? ? ? ??REGEXP 正则匹配
?? ? ? ? ? ? ? ? ?strcmp(str1,str2), ? ?strcmp('a','b') ? -1
?
IFNULL(expr1,expr2)
expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。IF(expr1,expr2,expr3)
expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3
- ?单目减。改变参数的符号。?ABS(X)?返回X的绝对值。?SIGN(X)?返回参数的符号,为-1、0或1,取决于X是否是负数、零或正数。 ?MOD(N,M)??% ??模 (类似C中的%操作符)。返回N被M除的余数。?FLOOR(X)?返回不大于X的最大整数值。??
CEILING(X)?返回不小于X的最小整数值。??
ROUND(X)?返回参数X的四舍五入的一个整数。
ROUND(X,D)?返回参数X的四舍五入的有D为小数的一个数字。如果D为0,结果将没有小数点或小数部分。 ?
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()
mysql> select