1. 逻辑运算符的基本概念
MySQL 中的逻辑运算符包括:
-
AND:两个条件都为真时结果为真。也叫 与运算;
-
OR:至少一个条件为真时结果为真。也叫 或运算;
-
NOT:取反,将真变假,假变真。也叫 非运算;
-
XOR:异或,两个条件不同,结果为真。
-
在 MySQL 中,
TRUE
等价于1
,FALSE
等价于0
。
2. 逻辑运算符的基本应用
直接举例:
假设我们有一个表test,其中有两列a和b,他们的值都是布尔值(0或1):
--如果没有数据库,请先创建数据库
create database ls;
use ls;
-- 下面是创建表的语句
create table test(
a int,
b int
);
-- 下面是往表中插入数据。
-- 特别说明一下:下面的数字1可以替换为其他 不是0的整数。
-- 原因是因为在mysql逻辑运算中,不是0的数都看成是真的。
insert into test values
(0,0),
(0,1),
(1,0),
(1,1);
下面我们用逻辑运算了比较这两列的值:
select a,b,(a and b) as 与运算,
(a or b) as 或运算,
(a xor b) as 异或运算,
(!a) as 非a
from test;
执行后 获得结果如下:
查询结果:
a | b | 与运算 | 或运算 | 异或运算 | 非a |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 1 | 0 | 0 |
解释:
-
与运算 (
a AND b
):-
当
a
和b
都为 1 时,结果为 1,否则为 0。
-
-
或运算 (
a OR b
):-
当
a
或b
中至少有一个为 1 时,结果为 1,否则为 0。
-
-
异或运算 (
a XOR b
):-
当
a
和b
不同时(一个为 1,另一个为 0),结果为 1;否则为 0。
-
-
非运算 (
!a
):-
取反操作,将
a
的值取反。如果a
为 1,结果为 0;如果a
为 0,结果为 1。 -
对b也是同样的结果,就没有写了。
-