MySQL基礎之 邏輯運算子
阿新 • • 發佈:2018-11-08
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。