Mysql Not in有null值查询的问题
2024-10-15 18:30:08
今天发现Mysql的not in使用的一个问题,大致是:
select * from A where id not in (select fid from B).
发现查询结果无论如何都是0条记录。后来发现B里面返回的查询结果集有一条NULL值,查了资料才知道mysql 的not in里面如果有一个NULL值,将返回0条记录。
要解决这个问题需要把 select fid from B 变成
select fid from B where B.fid is not null
这个问题在其他的数据库里也会有,是因为 not in的处理有问题。再具体详细说明一下,如下:
select * from A where id not in (1,2,null )
那么就没有记录返回,因为里面有null值,当用id和null比较的时候,会返回false,所以一条记录都不会返回,所以要改成下面就可以了:
select * from A where id not in (select bid from B where bid is not null )
最新文章
- 关于war包 jar包 ear包 及打包方法
- 学习Coding-iOS开源项目日志(二)
- MVC 4 用Nuget安装组件后的常见错误
- UIApplication 概述
- java基础面试题(转)
- Apache Spark GraphX的使用简介
- Java 基础知识(一)
- javaScript中的一些知识
- Django urls常用匹配语法
- win7如何安装mircosoft SDKs
- Delphi中 StrToIntDef函数的用法
- SpringMVC的标签库
- Synchronized锁性能优化偏向锁轻量级锁升级 多线程中篇(五)
- PHP开发要点与技巧总结(二)
- python super参数错误
- iOS开发支付篇-内购(IAP)
- Struts2重要知识点总结
- 使用RMAN Active duplicate创建异地auxiliary Database
- vue中上传图片至阿里云oss
- 通过编写PHP代码并运用“正则表达式”来实现对试题文档进行去重复、排序