面分别讨论 MySQL 逻辑运算符的使用方法。
逻辑非运算(NOT 或者 !)
NOT和!都是逻辑非运算符,返回和操作数相反的结果,具体语法规则为:
当操作数为 0(假)时,返回值为 1;
当操作数为非零值时,返回值为 0;
当操作数为 NULL 时,返回值为 NULL。
【实例1】分别使用非运算符 NOT 或者 ! 进行逻辑判断,运行结果如下:
mysql> SELECT NOT 10,NOT(1-1),NOT-5,NOT NULL,NOT 1+1;
+——–+———-+——-+———-+———+
| NOT 10 | NOT(1-1) | NOT-5 | NOT NULL | NOT 1+1 |
+——–+———-+——-+———-+———+
|
0 |
1 |
0 |
NULL |
0 |
+——–+———-+——-+———-+———+
1 row in set (0.00 sec)
mysql> SELECT !10,!(1-1),!-5,!NULL,!1+1;
+—–+——–+—–+——-+——+
| !10 | !(1-1) | !-5 | !NULL | !1+1 |
+—–+——–+—–+——-+——+
| 0 |
1 | 0 | NULL | 1 |
+—–+——–+—–+——-+——+
1 row in set (0.00 sec)
mysql> SELECT !1+1;
+——+
| !1+1 |
+——+
| 1 |
+——+
1 row in set (0.00 sec)
由运行结果可以看出,NOT 1+1和! 1+1的返回值不同,这是因为 NOT 与 ! 的优先级不同:
NOT 的优先级低于 +,因此NOT 1+1相当于NOT(1+1),先计算1+1,然后再进行 NOT 运算,由于操作数不为 0,因此NOT 1+1的结果是 0;
相反,! 的优先级别要高于 +,因此! 1+1相当于(!1)+1,先计算!1结果为 0,再加 1,最后结果为 1。