MySQL AND 运算符的用法
本文介绍了 MySQL 中如何在 WHERE 子句中使用 AND 运算符组合多个查询条件过滤查询数据。
当使用 SELECT 查询数据时,如果 WHERE 子句中有多个条件,可以根据需要使用 AND, OR, 或者 NOT 运算符将他们组合起来。本文主要介绍 AND 运算符。
AND 运算规则
AND 运算符是一个双目逻辑运算符,用来组合两个操作数。只有当两个操作数都为真时,结果才返回真,否则返回假或者 NULL。
AND 运算符语法:
a AND b
其中,a 和 b 是 AND 的两个操作数,可以是表达式,也可以是值。
不像一些编程语言,MySQL 中没有布尔类型,AND 的运算结果是 1, 0, 或着 NULL。
AND 运算符的运算规则如下:
- 如果两个操作数都不为
0 (FALSE) 并且不为 NULL 时
,则 AND 运算的结果为 1
。
SELECT 1 AND 1, 1 AND 2;
+---------+---------+
| 1 AND 1 | 1 AND 2 |
+---------+---------+
| 1 | 1 |
+---------+---------+
1 row in set (0.00 sec)
- 如果有一个操作数为
0 (FALSE),则 AND 运算的结果为 0
。这里的0 AND NULL
的结果为0
。
SELECT
0 AND 0,
0 AND 1,
0 AND 2,
0 AND NULL;
+---------+---------+------------+
| 0 AND 0 | 0 AND 1 | 0 AND NULL |
+---------+---------+------------+
| 0 | 0 | 0 |
+---------+---------+------------+
1 row in set (0.00 sec)
- 如果两个操作数中有一个为
NULL,且另一个不为 0 (FALSE),则返回 NULL
。
SELECT 1 AND NULL, 2 AND NULL, NULL AND NULL;
+------------+------------+---------------+
| 1 AND NULL | 2 AND NULL | NULL AND NULL |
+------------+------------+---------------+
| NULL | NULL | NULL |
+------------+------------+---------------+
- 两个操作数的
前后顺序不影响 AND 操作符的运算结果
。
SELECT 1 AND 0, 0 AND 1, 1 AND NULL, NULL AND 1;
+---------+---------+------------+------------+
| 1 AND 0 | 0 AND 1 | 1 AND NULL | NULL AND 1 |
+---------+---------+------------+------------+
| 0 | 0 | NULL | NULL |
+---------+---------+------------+------------+
WHERE 子句中的AND
在 WHERE 子句中, AND 连接两个比较条件
。一般的形式如下:
column_name1 = value1 AND column_name2 = value2
WHERE 子句中的 AND 过滤那些同时满足两个比较条件的记录行。
也就是说,如果数据表中的记录行,必须同时满足字段 column_name1 的值为 value1
和 column_name2 的值为 value2
两个条件,才是符合条件的记录行。
结论
本文通过实例介绍了 MySQL 中 AND 运算符的语法和用法。 AND 运算符的用法要点如下:
- AND 是双目运算符,需要两个布尔操作数。
- 如果两个操作数
都不为 0 (FALSE) 并且不为 NULL
时,则 AND 运算的结果为1
。 - 如果有
一个操作数为 0
(FALSE),则 AND 运算的结果为0
。 - 如果两个操作数中有
一个为 NULL,且另一个不为 0
(FALSE),则返回NULL
。 - 两个操作数的
前后顺序不影响 AND 操作符的运算
结果。 - WHERE 子句中的
AND 连接两个比较条件
,过滤那些同时满足两个比较条件的记录行。