SQL AND & OR 运算符


SQL AND & OR 运算符

AND 运算符 :只有第一个条件和第二个条件都成立,才显示一条记录。

OR 运算符 :只要第一个条件和第二个条件中有一个成立,就显示一条记录。

演示数据库

在本教程中,我们将使用 shulanxt 样本数据库。

下面是选自 “Websites” 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 树懒学堂      | http://www.shulanxt.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

AND 运算符实例

下面的 SQL 语句从 “Websites” 表中选取国家为 “CN” 且alexa排名大于 “50” 的所有网站:

实例:

SELECT * FROM Websites
WHERE country='CN'
AND alexa > 50;

输出结果:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 3  | 树懒学堂      | http://www.shulanxt.com/    | 4689  | CN      |
+----+--------------+---------------------------+-------+---------+

OR 运算符实例

下面的 SQL 语句从 “Websites” 表中选取国家为 “USA” 或者 “CN” 的所有客户:

实例:

SELECT * FROM Websites
WHERE country='USA'
OR country='CN';

输出结果:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 树懒学堂      | http://www.shulanxt.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

结合 AND & OR

您也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式)。

下面的 SQL 语句从 “Websites” 表中选取 alexa 排名大于 “15” 且国家为 “CN” 或 “USA” 的所有网站:

实例:

SELECT * FROM Websites
WHERE alexa > 15
AND (country='CN' OR country='USA');

输出结果:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 3  | 树懒学堂      | http://www.shulanxt.com/    | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
+----+--------------+---------------------------+-------+---------+