1.mysql中字段为null带来的问题
1.1统计总条数
先说结论:count(字段名)统计的总条数中不包含null值;count(1或*)统计的总条数中包含null值.说明如下:
案例展示数据:
统计总条数记录:
1.2.字段为null不支持算数运算符
1.2.1查询name不为123的记录信息,理论上能查6条记录,实际上只能查4条,name为null的不进行查询.
!= 或是not in 都不会统计字段为null的记录.如果想查出6条记录,在不改变表字段的情况下参考以下查询:
SELECT * FROM account WHERE NAME != 123 OR NAME IS NULL;
1.2.2对为null的字段进行加减运算会执行失败
2.处理方案
终极处理方案是从规范数据库表设置入手,设置表字段时设置为非空或是指定默认值;尤其要注意细节,这种原因导致出现线上问题很低级,应该避免!