【IT168 服务器学院】
在一个SQL语句中的select_expression或where_definition可由使用下面描述的函数的任何表达式组成。
包含NULL的一个表达式总是产生一个NULL值,否则除非表达式所包含的操作符和函数在文档中说明。
注意:在一个函数名和跟随它的括号之间不许没有空格。这帮助MySQL分析器区分函数调用和具有相同名字的对表或列的引用,尽管允许在参数周围有空格。
为了简洁,例子以缩写形式显示从mysql程序输出。因此:
mysql> select MOD(29,9);
1 rows in set (0.00 sec)
+-----------+
| mod(29,9) |
+-----------+
| 2 |
+-----------+
被显示为这样:
mysql> select MOD(29,9);
-> 2
分组函数
( ... )
括号。使用它们来强制在一个表达式的计算顺序。
mysql> select 1+2*3;
-> 7
mysql> select (1+2)*3;
-> 9
常用的算术操作
一般的算术操作符是可用的。注意在-、+和*情况下,如果两个参数是整数,结果用BIGINT(64位)精度计算!
+
加法
mysql> select 3+5;
-> 8
-
减法
mysql> select 3-5;
-> -2
*
乘法
mysql> select 3*5;
-> 15
mysql> select 18014398509481984*18014398509481984.0;
-> 324518553658426726783156020576256.0
mysql> select 18014398509481984*18014398509481984;
-> 0
最后一个表达式的结果是不正确的,因为整数乘积的结果超过用BIGINT计算的64位范围。
/
除法
mysql> select 3/5;
-> 0.60
被零除产生一个NULL结果:
mysql> select 102/(1-1);
-> NULL
一个除法用BIGINT算术计算,只要在它的结果被转换到一个整数的上下文中执行!
位函数
MySQL为位操作使用BIGINT(64位)算法,因此这些操作符有最大64位的一个范围。
|
位或
mysql> select 29 | 15;
-> 31
&
位与
mysql> select 29 & 15;
-> 13
<<
左移位一个长(BIGINT)数字。
mysql> select 1 << 2
-> 4
>>
右移位一个长(BIGINT)数字。
mysql> select 4 >> 2
-> 1
~
颠倒所有的位。
mysql> select 5 & ~1
-> 4
BIT_COUNT(N)
返回在参数N设定的位的数量。
mysql> select BIT_COUNT(29);
-> 4