邏輯運算符又稱爲布爾運算符,用來確認表達式的真和假。MySQL 支持4 種邏輯運算符,如表4-3 所示。mysql
表4-3 MySQL 中的邏輯運算符sql
運算符 | 做用 |
NOT 或! | 邏輯非 |
AND 或&& | 邏輯與 |
OR 或 || | 邏輯或 |
XOR | 邏輯異或 |
spa
「「NOT」或「!」表示邏輯非。返回和操做數相反的結果:當操做數爲0(假),則返回值爲1,不然值爲0。可是有一點除外,那就是NOT NULL 的返回值爲NULL,這一點請你們注意。以下例所示:code
mysql> select not 0, not 1, not null ; +-------+-------+----------+ | not 0 | not 1 | not null | +-------+-------+----------+ | 1 | 0 | NULL | +-------+-------+----------+ 1 row in set (0.00 sec)
「「AND」或「&&」表示邏輯與運算。當全部操做數均爲非零值而且不爲NULL 時,計算所得結果爲1,當一個或多個操做數爲0 時,所得結果爲0,操做數中有任何一個爲NULL 則返回值爲NULL。以下例所示:blog
mysql> select (1 and 1),(0 and 1) ,(3 and 1 ) ,(1 and null); +-----------+-----------+------------+--------------+ | (1 and 1) | (0 and 1) | (3 and 1 ) | (1 and null) | +-----------+-----------+------------+--------------+ | 1 | 0 | 1 | NULL | +-----------+-----------+------------+--------------+ 1 row in set (0.00 sec)
「OR」或「||」表示邏輯或運算。當兩個操做數均爲非NULL 值時,若有任意一個操做數爲非零值,則結果爲1,不然結果爲0。當有一個操做數爲NULL 時,如另外一個操做數爲非零值,則結果爲1,不然結果爲NULL。假如兩個操做數均爲NULL,則所得結果爲NULL。以下例所示:table
mysql> select (1 or 0) ,(0 or 0),(1 or null) ,(1 or 1),(null or null); +----------+----------+-------------+----------+----------------+ | (1 or 0) | (0 or 0) | (1 or null) | (1 or 1) | (null or null) | +----------+----------+-------------+----------+----------------+ | 1 | 0 | 1 | 1 | NULL | +----------+----------+-------------+----------+----------------+ 1 row in set (0.00 sec)
「XOR」表示邏輯異或。當任意一個操做數爲NULL 時,返回值爲NULL。對於非NULL 的操做數,若是兩個的邏輯真假值相異,則返回結果1;不然返回0。以下例所示:class
mysql> select 1 xor 1 ,0 xor 0,1 xor 0,0 xor 1,null xor 1; +---------+---------+---------+---------+------------+ | 1 xor 1 | 0 xor 0 | 1 xor 0 | 0 xor 1 | null xor 1 | +---------+---------+---------+---------+------------+ | 0 | 0 | 1 | 1 | NULL | +---------+---------+---------+---------+------------+ 1 row in set (0.00 sec)