mysql> select 1+2*3;
-> 7
mysql> select (1+2)*3;
-> 9
7.4.2 常用的算术操作
一般的算术操作符是可用的。注意在-、+和*情况下,如果两个参数是整数,结果用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算术计算,只要在它的结果被转换到一个整数的上下文中执行!
7.4.3 位函数
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
7.4.4 逻辑运算
所有的逻辑函数返回1(TRUE)或0(FALSE)。
NOT
!
逻辑非。如果参数是0,返回1,否则返回0。例外: NOT NULL返回NULL。
mysql> select NOT 1;
-> 0
mysql> select NOT NULL;
-> NULL
mysql> select ! (1+1);
-> 0
mysql> select ! 1+1;
-> 1
最后的例子返回1,因为表达式作为(!1)+1计算。
OR
||
逻辑或。如果任何一个参数不是0并且不NULL,返回1。
mysql> select 1 || 0;
-> 1
mysql> select 0 || 0;
-> 0
mysql> select 1 || NULL;
-> 1
AND
&&
逻辑与。如果任何一个参数是0或NULL,返回0,否则返回1。
mysql> select 1 && NULL;
-> 0
mysql> select 1 && 0;
-> 0
7.4.5 比较运算符
比较操作得出值1(TRUE)、0(FALSE)或NULL等结果。这些函数工作运用在数字和字符串上。当需要时,字符串自动地被变换到数字且数字到字符串(如在Perl)。
MySQL使用下列规则执行比较:
* 如果一个或两个参数是NULL,比较的结果是NULL,除了<=>操作符。
* 如果在比较中操作的两个参数是字符串,他们作为字符串被比较。
共30页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30






