SQL中or条件在括号里面和不在括号里面的区别

SQL中or条件在括号里面和不在括号里面的区别

写SQL时发现or条件在括号内和不在括号内查出的内容差异很大,例如:
SELECT * FROM Table_1 where name=‘王五’ and ( class=‘python’ or sex=‘男’)
SELECT * FROM Table_1 where name=‘王五’ and class=‘python’ or sex=‘男’

下面看个实例:

1.新建一个表
在这里插入图片描述
2.查询or在括号内的结果

SELECT   *  FROM  Table_1 where  name='王五'  and (class='JAVA'  or  sex='女')

在这里插入图片描述
分析:该sql查询出来的内容都是“王五”,但是把“王五、女、python”的内容也查出来了,所以在括号内的or是,满足前面条件name=‘王五’的前提下,符合or其中一个条件的内容都查出来。

3.查询or不带括号的结果

SELECT   *  FROM  Table_1 where  name='王五'  and class='python' or  sex='男'

在这里插入图片描述
分析:该sql把“王五、python”的信息都查出来了,并且还把“张三、男、java”信息也查出来了,因为他的sex=‘男’,所以不带括号的or是不管前置条件,只要符合or的条件都查询出来。
4.查询or不带括号的结果 ,把sex和class条件换一个位置

SELECT   *  FROM  Table_1 where  name='王五'    and  sex='男'   or class='python' 

在这里插入图片描述
分析:该sql把“王五”的信息都查出来了,并且还把“张三、女、python”信息也查出来了,因为他的class=‘python’,所以不带括号的or是不管前置条件,只要符合or的条件都查询出来。

总结

or条件写在括号里面是满足前面条件的前提下,符合其中一个or条件的内容都查出来;
or条件不加括号是不管前面的条件,只需要符合or条件的内容都查出来,查询结果等于前面的and条件加上单独符合or条件的内容。
如有不正确的位置,欢迎指正。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值