美文网首页想法简友广场程序员空间
mysql查询中where条件中的or和and注意事项

mysql查询中where条件中的or和and注意事项

作者: 七彩邪云 | 来源:发表于2020-01-17 21:57 被阅读0次

在mysql的where条件里, and 优先于 or

如果要改变优先级, 需要在想要将其做最小逻辑判断的条件外加括号(),
哪怕是单个条件也是如此.

建议将所有需要做最小逻辑判断的单条件 或 组合条件 都加上括号, 易于理解

使用示例 :
select xxx
from table_name
where (a=1 or b=1) and (c=1);

今天有这样得一个需求,如果登陆人是客服的话,会查询订单是'该客服'以及还没有匹配客服的,刚开始想的是直接在sql语句上拼写 or assigned_id is null 的,测试了一下发现这样的话,前面的其他条件都没有用了

image.png

这样的话,第一个i.server_org_id = 4这个条件已经不适用了,,,,,,,,从这里可以知道AND 的优先级比OR的优先级高,先执行了前面的AND 语句,然后执行后面的OR语句,所以查出来的数据不是我想要的数据

后来又想了一下,可以先将对应的assigned_id查出来,如下

image.png

这样查出来的数据只有assigned_id 为153的

最终版本:

image.png

相关文章

  • mysql查询中where条件中的or和and注意事项

    在mysql的where条件里, and 优先于 or 如果要改变优先级, 需要在想要将其做最小逻辑判断的条件外加...

  • 查询性能优化

    MySQL查询优化器的局限性 关联子查询 MySQL的子查询实现的非常糟糕,最糟糕的一类查询是where条件中包含...

  • NSPredicate条件查询和过滤

    NSPredicate用于查询和过滤在SQL中作为查询条件通常用WHERE,但在COREDATA中作为查询条件就可...

  • [IOS开发]CoreData条件查询之NSPredicate应

    NSPredicate用于查询和过滤在SQL中作为查询条件通常用WHERE,但在COREDATA中作为查询条件就可...

  • NSPredicate用于查询和过滤

    NSPredicate用于查询和过滤 在SQL中作为查询条件通常用WHERE,但在COREDATA中作为查询条件就...

  • MySQL中where条件中IN的慢查询优化

    MySQL中where条件中IN的慢查询优化 我们在编写SQL查询语句时,有时候会遇到连表查询的情况,有时的业务场...

  • mysql之条件语句

    mysql之条件语句where和having的区别。当我们需要按条件对查询结果进行筛选,就需要条件语句WHERE和...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

  • mysql 中模糊查询

    MySQL中 使用like关键字进行模糊查询,like关键字通常用在where条件查询子句中,like字句通常配合...

  • 面试总结

    1.Java编程 2. Mysql添加索引后查询速度没有变化 mysql查询语句的where条件字段和select...

网友评论

    本文标题:mysql查询中where条件中的or和and注意事项

    本文链接:https://www.haomeiwen.com/subject/jwyhzctx.html