not_in函数致错
Posted 辉常努腻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了not_in函数致错相关的知识,希望对你有一定的参考价值。
Not in 函数-致错
我们开发当中有些业务逻辑会用到not in()这个函数,
- 岗位角度:不管是后端开发还是大数据开发还是数据分析师…
- 技术角度:不管是mysql、Hive、Maxcompute…
真实铺垫略加画彩
- 我是这样发现的,not in () 的结果为null,看了一下午sql,然后我决定就反响查询,先看in好使不好使,in也是非常的给力,直接甩给我80W+条数据,但是我左表的全量是90W+啊,这不证明有10W+是没有在右表里的么,淦!
- 我就又扣迟了几遍not in,发现还是不行,我就想有没有其他函数可以使用(我这里没有第一时间探讨not in函数的问题,给我一拳!)between?any?left join table.column != table.column? 感觉都用不了,算了先吃饭。
- 后面想到又个小姐姐晚上还要聊点东西呢,做不完我还早走有点不好,我遍吃肉遍打开CSDN搜索not in() 无效,擦 这么多博客 ,原来他们早就等着我了,具体原因是这个函数设计的是当in(里有null 值)时,我们的结果集永远是null,也就是说我那10W+数据被无情的干掉了。
干完饭实践一下,得出not in (params) 此处的参数必须是有值的,不可以有null,尽管是’ '也可以
在你的not in(. 最后加 column != null)
就可以,不同sql自己去适配
总结
not In 相当于 all,如果 Not In 后面跟的是子查询的话,子查询中只要包含一个 null 的返回值,则会造成 整个 Not in 字句返回空值,结果就是查询不会返回任何结果。 而 in 相当于 =any 的意思,可以有效处理子查询中返回空值的情况,返回正确的结.
转一个博客,我能早下班、给小姐姐聊天都靠它
以上是关于not_in函数致错的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress:使用 post__not_in 排除自定义分类类别