SQL AND 与 OR

根据条件选取记录

在前一章中,我们学习了如何使用WHERE子句中的单个条件从表中选取记录。但有时需要根据多个条件过滤记录,比如选择用户年龄大于30岁,国家是美国,选择产品价格低于100美元,评级大于4,等等。

AND 运算符

AND/与 运算符是一个逻辑运算符,它组合了两个条件,只有当两个条件的值都为真时才返回真。AND 运算符通常用于SELECT、UPDATE、DELETE语句的WHERE子句中,作为筛选条件。

SELECT column1_name, column2_name, columnN_name
FROM table_name
WHERE condition1 AND condition2;

现在,让我们来看一些例子。

前面章节里,在demo数据库中,我们创建了名为persons的表,其中包含以下记录:

+----+-------------------+------------+-------------+
| id | name              | birth_date | phone       |
+----+-------------------+------------+-------------+
|  1 | Peter Wilson      | 1990-07-15 | 0711-020361 |
|  2 | Carrie Simpson    | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth | 1996-10-17 | 0695-346721 |
+----+-------------------+------------+-------------+

WHERE子句使用AND运算符

下面的SQL语句将从persons表中返回id >= 2,且名字里包含“Simpson”的人。

示例

SELECT * FROM persons 
WHERE id >= 2 AND name like '%Simpson%';

执行之后,您将得到如下输出:

+----+----------------+------------+-------------+
| id | name           | birth_date | phone       |
+----+----------------+------------+-------------+
|  2 | Carrie Simpson | 1995-05-01 | 0251-031259 |
+----+----------------+------------+-------------+

OR 运算符

同样,OR/或运算符也是一个逻辑操作符,它组合了两个条件,当其中一个条件为真时,返回真。

下面的SQL语句将从persons表中返回id >= 2,或名字里包含“Simpson”的人。

示例

SELECT * FROM persons WHERE id >= 2 OR name like '%Simpson%';

这次你会得到这样的输出:

+----+-------------------+------------+-------------+
| id | name              | birth_date | phone       |
+----+-------------------+------------+-------------+
|  2 | Carrie Simpson    | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth | 1996-10-17 | 0695-346721 |
+----+-------------------+------------+-------------+

组合使用 AND 与 OR 运算符

您还可以组合使用AND和OR来创建复杂的条件表达式。

下面的SQL语句将返回返回id >= 2,且名字里包含“Simpson”或者“Ashworth”的人。

示例

SELECT * FROM persons 
WHERE id >= 2 AND (name like '%Simpson%' OR name like '%Ashworth%');

这次你会得到这样的输出:

+----+-------------------+------------+-------------+
| id | name              | birth_date | phone       |
+----+-------------------+------------+-------------+
|  2 | Carrie Simpson    | 1995-05-01 | 0251-031259 |
|  3 | Victoria Ashworth | 1996-10-17 | 0695-346721 |
+----+-------------------+------------+-------------+


浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载