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

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

WHERE 查询条件

查询条件可以是:

  • 带比较运算符和逻辑运算符的查询条件
  • 带 BETWEEN AND 关键字的查询条件
  • 带 IS NULL 关键字的查询条件
  • 带 IN 关键字的查询条件
  • 带 LIKE 关键字的查询条件

单一条件的查询语句

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

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

mysql> SELECT name,height FROM tb_students_info WHERE height=170;
+-------+--------+
| name  | height |
+-------+--------+
| Susan |    170 |
+-------+--------+

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

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

mysql> SELECT name,age FROM tb_students_info-> WHERE age<22;
+------+------+
| name | age  |
+------+------+
| John |   21 |
+------+------+

可以看到,查询结果中所有记录的 age 字段的值均小于 22 岁,而大于或等于 22 岁的记录没有被返回。

多条件的查询语句

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

  • AND:记录满足所有查询条件时,才会被查询出来。
  • OR:记录满足任意一个查询条件时,才会被查询出来。
  • XOR:记录满足其中一个条件,并且不满足另一个条件时,才会被查询出来。

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

mysql> SELECT name,age,height FROM tb_students_info -> WHERE age>21 AND height>=175;
+--------+------+--------+
| name   | age  | height |
+--------+------+--------+
| Henry  |   23 |    185 |
| Jim    |   24 |    175 |
| Thomas |   22 |    178 |
+--------+------+--------+

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

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

mysql> SELECT name,age,height FROM tb_students_info -> WHERE age>21 OR height>=175;
+--------+------+--------+
| name   | age  | height |
+--------+------+--------+
| Dany   |   25 |    160 |
| Green  |   23 |    158 |
| Henry  |   23 |    185 |
| Jane   |   22 |    162 |
| Jim    |   24 |    175 |
| Lily   |   22 |    165 |
| Susan  |   23 |    170 |
| Thomas |   22 |    178 |
| Tom    |   23 |    165 |
+--------+------+--------+

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

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

mysql> SELECT name,age,height FROM tb_students_info -> WHERE age>21 XOR height>=175;
+-------+------+--------+
| name  | age  | height |
+-------+------+--------+
| Dany  |   25 |    160 |
| Green |   23 |    158 |
| Jane  |   22 |    162 |
| Lily  |   22 |    165 |
| Susan |   23 |    170 |
| Tom   |   23 |    165 |
+-------+------+--------+

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

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

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

6、WHERE:条件查询数据相关推荐

  1. mongorepository查询条件_springboot jpa + mongodb实现多条件查询数据

    问题一:单条件查询如何查? 问题二:非IBaseMongoRepository接口原生的方法,采用自定义仓库? 问题三:如何结合jpa和mogodb语句从mogodb数据库查询出数据? 解决问题一: ...

  2. android多条件查询数据,Android GreenDao 条件查询问题

    使用GreenDao保存了全国城市的属性(名字,代码,省份等等),保存可以成功,无条件查询全部数据时可以成功: private List queryCitiesInfo(){ List cityInf ...

  3. openlayers4 wfs条件查询数据坐标投影无法转化投影的问题EPGS:4548

    简答介绍一下,openlayers只支持两种投影一个是EPGS:3857和EPGS:4326 我的地图是EPGS:3857,而我的geoserver?地图⑩用EPGS:4548北京投影,我常用的经纬度 ...

  4. mysql list集合查询_MyBatis 传入List集合作为条件查询数据

    使用的是SSM框架,数据库是MySQL,做查询的时候传入List集合,使用SQL语句的in方式查询数据 主要有两点问题:我的List集合是利用的另外一个语句查询出来的,传入参数是int类型,返回值是i ...

  5. Guns根据条件查询数据_入门试炼04

    一.找到Controler,对方法进行修改即可实现 二.修改list方法 修改钱的方法: /*** 获取房屋管理列表**wrapper 条件*/@RequestMapping(value = &quo ...

  6. 【.Net】C# 将Access中时间段条件查询的数据添加到ListView中

    一.让ListView控件显示表头的方法 在窗体中添加ListView 空间,其属性中设置:View属性设置为:Detail,Columns集合中添加表头中的文字. 二.利用代码给ListView添加 ...

  7. 用纯JSP实现按条件查询数据库

    用纯JSP实现按条件查询数据库 不使用servlet跟框架的情况下,以纯jsp实现.search.jsp网页提交查询值,然后search.jsp用request.getParameter()方法取得查 ...

  8. Android Realm数据库多条件查询

    前面项目有用到本地数据库,处理的数据量也有点大,然后就用到了realm,现在在这里记录下多条件查询... 引用包什么的,实体类该怎么写这里就不说了,就说说怎么进行多条件查询 比如是你要查询用户(以姓李 ...

  9. ava查询mysql的数据_MYSQLi数据访问查询数据

    单条件查询 数据查询 请输入汽车品牌: 汽车代号 汽车名字 系列代号 汽车油耗 汽车价格 $tj = " 1=1 ";//恒成立条件 $name = ""; i ...

最新文章

  1. 转 The connection to adb is down, and a severe error
  2. 火爆全网!《算法刷题宝典》资源,免费下载!(含代码数据)
  3. solidworks钣金插件_高效掌握SolidWorks钣金零件加工设计概念
  4. oracle第二章数据的运用,第二章:oracle_sql语句之限制(where子句)和排列数据(order by子句)...
  5. 在Linux PC上查看arm交叉编译的可执行文件依赖的动态库
  6. php中orm模型,模型model
  7. JavaMelody开源系统性能监控软件:
  8. Adobe illustrator 图的放置和微调 - 连载 9
  9. 华为机试——句子逆序
  10. 5 批量更新多条记录_批量更新现有记录的默认表格方法
  11. 用R语言实现数据离散化
  12. 盛世昊通谈跨界造车风潮,不同车企到底打什么主意
  13. 阿里巴巴达摩院发布2019十大科技趋势:数字身份将成为第二张身份证
  14. 优秀html5网页设计,五个国外优秀的HTML5酷站欣赏|H5开发第二课
  15. patterns in java_Patterns-in-Java
  16. HISI3559A 使用yolov3 (VI-VPSS-VO)实时目标检测
  17. 邮件解析引擎FastMail库大功告成!
  18. 基于JAVA竞赛信息发布及组队系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  19. UTF8与GBK字符编码之间的相互转换
  20. 学生的致谢笑死!导师:致谢别矫情,没屁在那硬编!

热门文章

  1. TF之LiR:基于tensorflow实现手写数字图片识别准确率
  2. ubuntu卸载vsftpd出错
  3. Linux命令 比较文件
  4. (三)页面之间的参数传递
  5. 提高ASP.NET应用程序性能的几招方法
  6. ASP.NET学习6 XML文档的操作
  7. dblclick,默认全选屏蔽
  8. ESP32 官方文档(三)分区表
  9. Linux Device和Driver注册过程,以及Probe的时机
  10. 聚类算法(3):DBSCAN密度聚类