逻辑运算符又称为布尔运算符,用来确认表达式的真和假。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)