当前位置:   article > 正文

MySQL(50)MySQL WHERE:条件查询数据_mysql多个可变查询条件的查询语句

mysql多个可变查询条件的查询语句

MySQL WHERE:条件查询数据

在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 关键字来指定查询条件。

使用 WHERE 关键字的语法格式如下:

        WHERE 查询条件

查询条件可以是:

        带比较运算符和逻辑运算符的查询条件

        带 BETWEEN AND 关键字的查询条件

        带 IS NULL 关键字的查询条件

        带 IN 关键字的查询条件

        带 LIKE 关键字的查询条件

单一条件的查询语句

单一条件指的是在 WHERE 关键字后只有一个查询条件。

例 1在 tb_students_info 数据表中查询身高为 170cm 的学生姓名,SQL 语句和运行结果如下。

  1. mysql> SELECT name,height FROM tb_students_info
  2. -> WHERE height=170;
  3. +-------+--------+
  4. | name | height |
  5. +-------+--------+
  6. | Susan | 170 |
  7. +-------+--------+
  8. 1 row in set (0.17 sec)

可以看到,查询结果中记录的 height 字段的值等于 170。如果根据指定的条件进行查询时,数据表中没有符合查询条件的记录,系统会提示“Empty set(0.00sec)”。

例 2在 tb_students_info 数据表中查询年龄小于 22 的学生姓名,SQL 语句和运行结果如下。

  1. mysql> SELECT name,age FROM tb_students_info
  2. -> WHERE age<22;
  3. +------+------+
  4. | name | age |
  5. +------+------+
  6. | John | 21 |
  7. +------+------+
  8. 1 row in set (0.05 sec)

多条件的查询语句

在 WHERE 关键词后可以有多个查询条件,这样能够使查询结果更加精确。多个查询条件时用逻辑运算符 AND(&&)、OR(||)或 XOR 隔开。

AND:记录满足所有查询条件时,才会被查询出来。

OR:记录满足任意一个查询条件时,才会被查询出来。

XOR:记录满足其中一个条件,并且不满足另一个条件时,才会被查询出来。

例 3在 tb_students_info 表中查询 age 大于 21,并且 height 大于等于 175 的学生信息,SQL 语句和运行结果如下。

  1. mysql> SELECT name,age,height FROM tb_students_info
  2. -> WHERE age>21 AND height>=175;
  3. +--------+------+--------+
  4. | name | age | height |
  5. +--------+------+--------+
  6. | Henry | 23 | 185 |
  7. | Jim | 24 | 175 |
  8. | Thomas | 22 | 178 |
  9. +--------+------+--------+
  10. 3 rows in set (0.00 sec)

可以看到,查询结果中所有记录的 age 字段都大于 21 且 height 字段都大于等于 175。

例 4在 tb_students_info 表中查询 age 大于 21,或者 height 大于等于 175 的学生信息,SQL 语句和运行结果如下。

  1. mysql> SELECT name,age,height FROM tb_students_info
  2. -> WHERE age>21 OR height>=175;
  3. +--------+------+--------+
  4. | name | age | height |
  5. +--------+------+--------+
  6. | Dany | 25 | 160 |
  7. | Green | 23 | 158 |
  8. | Henry | 23 | 185 |
  9. | Jane | 22 | 162 |
  10. | Jim | 24 | 175 |
  11. | Lily | 22 | 165 |
  12. | Susan | 23 | 170 |
  13. | Thomas | 22 | 178 |
  14. | Tom | 23 | 165 |
  15. +--------+------+--------+
  16. 9 rows in set (0.00 sec)

可以看到,查询结果中所有记录的 age 字段都大于 21 或者 height 字段都大于等于 175。

例 5在 tb_students_info 表中查询 age 大于 21,并且 height 小于 175 的学生信息和 age 小于 21,并且 height 大于等于 175 的学生信息,SQL 语句和运行结果如下。

  1. mysql> SELECT name,age,height FROM tb_students_info
  2. -> WHERE age>21 XOR height>=175;
  3. +-------+------+--------+
  4. | name | age | height |
  5. +-------+------+--------+
  6. | Dany | 25 | 160 |
  7. | Green | 23 | 158 |
  8. | Jane | 22 | 162 |
  9. | Lily | 22 | 165 |
  10. | Susan | 23 | 170 |
  11. | Tom | 23 | 165 |
  12. +-------+------+--------+
  13. 7 rows in set (0.00 sec)

可以看到,查询结果中所有记录的 age 字段都大于 21 且 height 字段都小于 175。tb_students_info 数据表中没有 age 字段小于 21 且 height 字段大于等于 175 的记录。

OR、AND 和 XOR 可以一起使用,但是在使用时要注意运算符的优先级。

查询条件越多,查询出来的记录就会越少。因为,设置的条件越多,查询语句的限制就更多,能够满足所有条件的记录就更少。为了使查询出来的记录正是自己想要的,可以在 WHERE 语句中将查询条件设置的更加具体。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/730155
推荐阅读
相关标签
  

闽ICP备14008679号