mysql查询条件为or_使用mysql查询where条件里的or和and

为什么要着重讲这块内容呢?因为好多小伙伴都会混淆,要不就是不知道怎么组合使用,今天就给大家讲这部分内容干货,让大家半分钟看懂。

AND、OR运算符的组合使用

在WHERE子句中,通过AND、OR运算符可以同时连接多个条件,当然AND、OR运算符也可以同时使用。但是当AND、OR运算符同时存在时,其优先级如何确定呢?与大多数语言一样,SQL语言认为AND运算符的运算级别要高于OR运算符。即当出现

1

2

3

condition1

OR condition2

AND condition3

时,其运算实际上是等价于

1

2

condition1

OR (condition2 AND condition3)

因此,AND、OR运算符需要同时使用时,一定要注意运算符的优先级。

实例:同时使用AND、OR运算符实现查询

假如需要查询所有计算机系和生物系中,且工资收入(SAL)超过1000的教师的姓名(TNAME)、系(DNAME)、工资(SAL)信息。如果采用如下SQL代码:

python课程免费试听预约

地区:

北京

天津

上海

江苏

浙江

山东

江西

安徽

广东

广西

海南

辽宁

吉林

黑龙江

内蒙古

山西

福建

河南

河北

湖南

湖北

四川

重庆

云南

贵州

新疆

西藏

陕西

青海

宁夏

甘肃

姓名:

手机:

1

2

3

4

5

6

SELECT TNAME, DNAME, SAL

FROM TEACHER

WHERE DNAME='计算机'

OR DNAME='生物'

AND SAL>1000

ORDER BY SAL

很显然没有得到预期的计算结果,这是因为AND运算符的运算级别要高于OR运算符,代码实际上实现的查询是计算机系的所有教师以及生物系中的工资大于1000的教师的相关信息。要实现例中需要的查询结果,正确的SQL代码为:

1

2

3

4

5

SELECT TNAME, DNAME, SAL

FROM TEACHER

WHERE (DNAME='计算机' OR DNAME='生物')

AND SAL>1000

ORDER BY SAL

可以发现,当在OR运算符连接的两个条件加上括号( )后,得到了需要的查询结果。这是因为,括号( )的优先级高于AND运算符,执行过程就先于AND运算符。

注意 当OR运算符和AND运算符同时运用时,建议用户不要考虑其默认的优先级顺序,而是采用括号( )来实现需要的执行顺序,这样可以增强程序的可读性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值