AND & OR 运算符用于基于一个以上的条件对记录进行过滤。
AND & OR 运算符
AND 与 OR 属于逻辑运算
使用AND运算,只有同时符合AND两边条件的数据行才会被选中。
使用OR运算,只要数据符合OR两边条件中一个,数据就会被选中。
演示数据
在猿变教程中,我们将使用 yuanbian 样本数据库。
下面是选自 "articles" 表的数据:
+----+--------------+----------+--------+---------------------+
| id | title | author | a_type | pub_date |
+----+--------------+---------—+--------+---------------------+
| 1 | hadoop简介 | 大猿 | 311 | 2003-01-05 11:23:00 |
| 2 | python元类 | 小猿 | 163 | 2003-01-11 13:00:01 |
| 3 | HTML基础 | 猿大头 | 497 | 2004-03-09 12:00:00 |
| 4 | JavaScript | 猿媛 | 20 | 2005-11-3 17:34:12 |
| 5 | ETL快速入门 | 猿媛 | 3 | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+
AND 运算符实例
下面的 SQL 语句从 "articles" 表中选取a_type为 3 且id大于 2 的所有网站:
SELECT * FROM articles
WHERE a_type= 3
AND id > 2;
执行输出结果:
+----+--------------+----------+--------+---------------------+
| id | title | author | a_type | pub_date |
+----+--------------+---------—+--------+---------------------+
| 5 | ETL快速入门 | 猿媛 | 3 | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+
OR 运算符实例
下面的 SQL 语句从 "articles" 表中选取作者为 "大猿" 或者 "小猿" 的所有文章:
SELECT * FROM articles
WHERE author='大猿'
OR author='小猿';
执行输出结果:
+----+--------------+----------+--------+---------------------+
| id | title | author | a_type | pub_date |
+----+--------------+---------—+--------+---------------------+
| 1 | hadoop简介 | 大猿 | 311 | 2003-01-05 11:23:00 |
| 2 | python元类 | 小猿 | 163 | 2003-01-11 13:00:01 |
+----+--------------+----------+--------+---------------------+
组合 AND 与 OR
您也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。
下面的 SQL 语句从 "articles" 表中选取 作者为 "小猿" 且发表时间为 "2003-01-01" 或 "2003-01-06" 期间的所有文章:
SELECT * FROM articles
WHERE author='小猿'
AND (date(pub_date)='2003-01-01' or date(pub_date)='2003-01-06');
执行输出结果:
+----+--------------+----------+--------+---------------------+
| id | title | author | a_type | pub_date |
+----+--------------+---------—+--------+---------------------+
| 2 | python元类 | 小猿 | 163 | 2003-01-11 13:00:01 |
+----+--------------+----------+--------+---------------------+
讨论区