1. 程式人生 > >MySQL基礎之 邏輯運算子

MySQL基礎之 邏輯運算子

mysql的邏輯運算子有四個:與、或、非、異或

我們平時在談論的時候不考慮帶有NULL的情況,今天我們就來考慮一下帶有NULL值,他們的結果是怎麼樣的

AND(&&)運算子

mysql> select 5 AND 6,0 AND 7,0 AND NULL,3 AND NULL,9 AND 2,0 AND 12,0 AND NULL,14 AND NULL;
+---------+---------+------------+------------+---------+----------+------------+-------------+
| 5 AND 6 |
0 AND 7 | 0 AND NULL | 3 AND NULL | 9 AND 2 | 0 AND 12 | 0 AND NULL | 14 AND NULL | +---------+---------+------------+------------+---------+----------+------------+-------------+ | 1 | 0 | 0 | NULL | 1 | 0 | 0 | NULL | +---------+---------+------------+------------+---------+----------+------------+-------------+
1 row in set (0.00 sec)

 

OR(||)運算子

mysql> select 5 OR 6,0 OR 7,0 OR 0,3 OR NULL,9 || 2,0 || 12,0 || NULL,14 || NULL;
+--------+--------+--------+-----------+--------+---------+-----------+------------+
| 5 OR 6 | 0 OR 7 | 0 OR 0 | 3 OR NULL | 9 || 2 | 0 || 12 | 0 || NULL | 14 || NULL |
+--------+--------+--------+-----------+--------+---------+-----------+------------+
| 1 | 1 | 0 | 1 | 1 | 1 | NULL | 1 | +--------+--------+--------+-----------+--------+---------+-----------+------------+ 1 row in set (0.01 sec)

 

NOT( ! )運算子

mysql> select  NOT 5,NOT 0,NOT NULL, NOT 3,NOT 0;
+-------+-------+----------+-------+-------+
| NOT 5 | NOT 0 | NOT NULL | NOT 3 | NOT 0 |
+-------+-------+----------+-------+-------+
|     0 |     1 |     NULL |     0 |     1 |
+-------+-------+----------+-------+-------+
1 row in set (0.00 sec)

 

總結:通過上面的分析我發現:NULL值是處於0和1之間的某個值,他也表示一個值,只不過這個值是NULL值,而不是0。在進行計算的時候,1與NULL則結果為NULL。而0與NULL則結果為0。1或NULL則結果為1,0或NULL則結果為NULL;可見NULL值是介於0和1之間的值。另外非NULL既不是1也不是0,還是NULL。