为mysql查询null值赋默认值使用ifnull函数。
出现null值的情况,一般是在多表联合查询的时候。比如有一个文章表和一个评论表,评论表的外键是文章表的主键id。设想我们的需求是实现带评论总数的文章列表时,无评论的文章,统计的评论总是将是null值。
例:
select a.*,b.numas num from article as a left join (select count(*) as num,article_id from article_reply group by article_id) as b on a.id=b.article_id
b.num将是null值。
怎样将null值转换为零呢。
有两种方式:
1.在view层判断,如果是null值就输出零。这种方法感觉太不舒服,这里不介绍,也不推荐。
2.在sql层级处理,view层无需做任何的处理。
例:
select a.*,ifnull(b.num,0) as num from article as a left join (select count(*) as num,article_id from article_reply group by article_id) as b on a.id=b.article_id
上列中的0就是默认值,当然你也可以赋其它默认值。