今天听到一种说法,说OR会使索引失效,最好使用UNION代替.查了一下发现的确有些文章这么说.但总觉得没什么道理.直觉上觉得虽然or连接的查询条件不能使用联合索引,但感觉两个单独的索引是可以用的.看了一些文章,感觉一直很疑惑.
于是试了一下,发现果然如此.
具体可以查阅文档:
还是很有意思的.
可能因为mysql这个东西太复杂,感觉sql优化都快成玄学了.网上流传了很多"奇技淫巧",让人真假难辨.我觉得可能是过去mysql优化不是很好时,大家有一些优化的技巧,但随着mysql更新优化,现在已经成为过时甚至错误的做法.但这些说法还在流传,造成了我这样的新手的困惑.
所以看来小白要学技术,还是要踏实点多看官方文档,多亲自实践,少看博客,少道听途说.
在where条件中,每个条件之间的链接可以用and或or.or就是或的意思,但注意要放在最后一个条件中,不然会有问题的.
再好好思考下这个逻辑.
项目中可能回遇到or 与? and? 连用,我认为or连接的前后是两个条件.所以不能一个条件分开写.
比如 一张表a? 有 user_code,shared,del,company_id四个字段? 我想查shared=1 且 del=0 或者del=0的数据 且company_id=1, shared是共享的意思,不区分公司,那么可以这样写
例? select? user_code from a where shared=1? and del=0 or del=0
以上就是土嘎嘎小编为大家整理的mysql中怎么用or相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!