null值在mysql 比较特殊,很多需要注意的地方
null不能用“=”号来作为条件判断,如select * from table where id = null会永远返回0条记录,应该用is null 来作为条件
其次,in ,not in 在存在Null值的情况也要额外留意,如条件:id in( ids )
首先如果里面的ids 为null,那么永远不会有符合条件的记录,即使id 为null,结果也是not in null。
其次如果里面的ids 不为null,那么为null的id是通过的,即null永远是in 一个非null集合的。
那么如果id not in (非空集合),这是记录id 为null 的记录将不会通过这个条件,所以后面要加上or id is null。
目前关注到的就这两个点。后面有其他细节继续更新