原生Mysql之and和or混合使用

在书写代码时常常容易出现,or和and的混合使用。首先,要明确的是and相对于or来说,前者的优先级是要更高。

我们先来看一下,经常容易犯的错误例子:

语句一: select * from  tableNameA  where fieldA = 'xx' or ffieldB = 'cc' and fieldC='dd';

我们来解读一下语句一所表达的意思:在tableNameA表中,搜索(第一部分: fieldA = 'xx' )或者 (第二部分 :fieldB = 'cc' and fieldC='dd' )。然而我们与我们想要表达的意思相悖(第一部分:fieldA = 'xx' or ffieldB = 'cc'),(第二部分 :fieldC='dd' )。

下面我们来看一下实例:

我创建了一个test表,有如下数据:

一般我们理解的or语句写法: select * from test where name = 'test2' or user_email = 'test3@qq.com' and  age = '20';

结果:

正确的语句写法: select * from test where (name = 'test2' or user_email = 'test3@qq.com') and  age = '20';

依据以上的例子我们可以看出来,是有明显区别的。

总结:要使用and和or的混合使用,or条件要用 ()包括在一起,组成一个部分,不然,并不能达到预期的效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值