场景是一张表 有个markedasdeleted字段,作用是标记当前行数据是否删除,值为1,则是删除状态 值为0为正常状态,于是统计没有删除的数据条数SQL这样写。
select count(1) from t_table where markedasdeleted<>'1';
结果踩坑了,数据表里markedasdeleted 字段还有值是null的数据也是正常的数据,上面这样的写法会统计不到值为null的行,结果就不对了。
正确的写法应该是:
select count(1) from t_table where markedasdeleted<>'1' or markedasdeleted is null