mysql使用条件查询的时候数值为null的数据会被过滤
如这条sql:SELECT * from todo WHERE status not in ('yes')查询出所有这个字段不为yes的参数,但是这个就会存在一个问题,如果这个字段不是必填项,可以为空,此时,这条sql执行出来的结果就是会把yes和为空的数据都过滤了
为了解决这个问题,mysql给了一个为空条件 is null,这个文章主要讨论的是is null加在哪个位置
下面先来几个错误写法 SELECT * from todo WHERE status not in ('yes',is null)
SELECT * from todo WHERE status != 'yes' and status is null;执行这条你会发现前面一个条件没有了
正确的写法是SELECT * from todo WHERE status not in ('yes') OR status IS NULL ;或许我们很少用or这个词一般都是and,但是如果一个字段的多个条件就要使用or