MySQL——单表查询(二)按条件查询(9)带 AND 关键字的多条件查询

发布于:2024-08-20 ⋅ 阅读:(126) ⋅ 点赞:(0)

        在使用 SELECT 语句查询数据时,有时为了使查询结果更加精确,可以使用多人询条件。在 MySQL 中,提供了一个 AND 关键字,使用 AND 关键字可以连接两个或多个查询条件,只有满足所有条件的记录才会被返回。其语法格式如下所示:

SELECT *|{字段名 1,字段名 2.)
FROM 表名
WHERE 条件表达式 1 AND 条件表达式 2 [… AND 条件表达式 n];

        从上面的语法格式可以看到,在 WHERE关键字后面跟了多个条件表达式,每两小条件表达式之间用 AND 关键字分隔。

        例如,查询 student 表中 id 字段值小于 5,并且 gender 字段值为“女”的学生姓名,SQL 语句如下所示:

SELECT id,name,gender FROM student WHERE id<5 AND gender='女';

        执行结果如下所示:

mysql> SELECT id,name,gender FROM student WHERE id<5 AND gender='女';
+----+------------+--------+
| id | name       | gender |
+----+------------+--------+
|  4 | husanniang | 女     |
+----+------------+--------+
1 row in set (0.08 sec)

        从查询结果可以看到,返回记录的 id 字段值为 4,gender 字段值为“女”,也就是说,查询结果必须同时满足 AND 关键字连接的两个条件表达式。

        例如,查询 student 表中 id 字段值在 1、2、3、4 之中,name 字段值以字符串“ng”结束,并且 grade 字段值小于 80 的记录,SQL语句如下所示:

SELECT id,name,grade,gender
FROM student
WHERE id in(1,2,3,4) AND name LIKE '%ng' AND grade<80;

        在 SELECT 语句中,使用两个 AND 关键字连接了三个条件表达式,执行结果如下所示:

mysql> SELECT id,name,grade,gender
    -> FROM student
    -> WHERE id in(1,2,3,4) AND name LIKE '%ng' AND grade<80;
+----+-----------+-------+--------+
| id | name      | grade | gender |
+----+-----------+-------+--------+
|  1 | songjiang |    40 | 男     |
+----+-----------+-------+--------+
1 row in set (0.00 sec)

        从查询结果可以看出,返回的记录同时满足 AND 关键字连接的三个条件表达式。