SQL AND OR 运算符

AND 和 OR 运算符用于查询符合一个以上条件的数据库记录。

AND 运算符表示同时符合两个条件的记录。

OR 运算符表示符合其中任何一个条件的记录。

样本数据库

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

下面是选自 "Websites" 表的数据:

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

 

1. AND 运算符范例

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

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

执行结果
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 3  | 编程宝库      | http://www.codebaoku.com/  | 4689 | CN      |
+----+--------------+---------------------------+-------+---------+

 

2. 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.codebaoku.com/  | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

 

3. 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.codebaoku.com/  | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
+----+--------------+---------------------------+-------+---------+

ORDER BY 用于对结果集按照一个列或者多个列进行排序。ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。