广告
返回顶部
首页 > 资讯 > 数据库 >如何解决SQL语句中AND和OR执行顺序遇到的问题
  • 325
分享到

如何解决SQL语句中AND和OR执行顺序遇到的问题

2024-04-02 19:04:59 325人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关如何解决sql语句中AND和OR执行顺序遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。场景1、有一张学生表Student,表字段包括

这篇文章将为大家详细讲解有关如何解决sql语句中AND和OR执行顺序遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

场景

1、有一张学生表Student,表字段包括Id(用户主键)、Name(用户名)、Grade(年级)、Class(班级)、Sex(性别)。如下:

表结构

2、在表中导入十条测试数据,如下:

表数据

3、现需要查询出性别为女的1年级女学生,或者性别为女的2班级女学生。SQL语句如下:
    select * from student where sex='女' and grade=1 or class=2
但是该sql查询出来的结果并不符合要求,执行结果如下:

执行结果

执行的结果中还查询出了班级为2的男学生,显然结果是不正确的。

4、修改下SQL语句,添加上括号。如下:

select * from student where sex='女' and (grade=1 or class=2)

该sql查询出来的结果符合要求

分析

从上面的场景中,问题的关键就在于AND和OR的执行顺序问题。
查阅资料,关系型运算符优先级高到低为:NOT >AND >OR
如果where 后面有OR条件的话,则OR自动会把左右的查询条件分开。
就如上面场景中的第一条语句,他的查询条件分为两部分(或):

1、sex='女' and grade=1
2、 class=2

这也就是查询出1年级的女学生,2班级的学生。不符合最初查询的要求。
那么解决办法就是使用括号区分执行的顺序
就如上面场景的第二条语句,查询条件分为两部分(并):

1、 sex='女' 
2、 (grade=1 or class=2)

关于“如何解决SQL语句中AND和OR执行顺序遇到的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 如何解决SQL语句中AND和OR执行顺序遇到的问题

本文链接: https://www.lsjlt.com/news/57326.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决SQL语句中AND和OR执行顺序遇到的问题
    这篇文章将为大家详细讲解有关如何解决SQL语句中AND和OR执行顺序遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。场景1、有一张学生表Student,表字段包括...
    99+
    2022-10-18
  • C语言执行程序时遇到的常见问题如何解决
    本文小编为大家详细介绍“C语言执行程序时遇到的常见问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言执行程序时遇到的常见问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.新命名一个头文...
    99+
    2023-07-05
  • 如何解决无法执行vbs脚本中遇到的问题
    如何解决无法执行vbs脚本中遇到的问题,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。有网友反映无法执行vbs文件,一般情况下,很多坏孩子用vbs写病毒,所以有时...
    99+
    2023-06-08
  • 如何解决SQL语句中执行超时引发网站首页访问故障的问题
    这篇文章将为大家详细讲解有关如何解决SQL语句中执行超时引发网站首页访问故障的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。故障的情况是这样的。故障期间日志中记录了大...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作