Mysql的count查询,如果没有结果返回NULL,怎么让他返回0

骑怪的名字 2013-11-25 11:32:34
试了IFNULL貌似不管用
...全文
37080 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
TaoLR 2014-01-26
  • 打赏
  • 举报
回复
引用 5 楼 rucypli 的回复:
可以在sql外面包一层即可 select count(*) from ( select count(* ) as cnt from A where A.type not in(select type from B) group by A.type )T;
这个很赞, 可以解决单个count(*) 为null的情况, 但是我需要将那些没有数据的组的count(*) 结果和有数据的同时显示,如果为null,则显示为0....
TaoLR 2014-01-26
  • 打赏
  • 举报
回复
引用 6 楼 ssb389708585 的回复:
[quote=引用 5 楼 rucypli 的回复:] 可以在sql外面包一层即可 select count(*) from ( select count(* ) as cnt from A where A.type not in(select type from B) group by A.type )T;
一时没想到[/quote] 这里如果是分组group by进行count, 有些组的count为空,有些组count不为空, 这里怎么把为空的显示为0...如果最外层再包一个,也解决不了呀...
iihero_ 2013-11-25
  • 打赏
  • 举报
回复
什么个情况,没有值,应该就是返回0的啊 帖出你的表和测试数据及SQL看看
骑怪的名字 2013-11-25
  • 打赏
  • 举报
回复
引用 5 楼 rucypli 的回复:
可以在sql外面包一层即可 select count(*) from ( select count(* ) as cnt from A where A.type not in(select type from B) group by A.type )T;
一时没想到
rucypli 2013-11-25
  • 打赏
  • 举报
回复
可以在sql外面包一层即可 select count(*) from ( select count(* ) as cnt from A where A.type not in(select type from B) group by A.type )T;
骑怪的名字 2013-11-25
  • 打赏
  • 举报
回复
引用 3 楼 zzq19860626 的回复:
如果你不需要null 那你有两种办法 1、设置数据库默认缺省值null 为0 2、将null转换为0
1、这条不好 2、加了group by之后 ifnull是不管用的
张自强 2013-11-25
  • 打赏
  • 举报
回复
如果你不需要null 那你有两种办法 1、设置数据库默认缺省值null 为0 2、将null转换为0
骑怪的名字 2013-11-25
  • 打赏
  • 举报
回复
引用 1 楼 iihero 的回复:
什么个情况,没有值,应该就是返回0的啊 帖出你的表和测试数据及SQL看看
sorry,一直在忙着弄东西。。。 实际的sql和表太麻烦了,在公司的电脑上,刚才自己弄了一个测试的例子: 表A 两个字段 id type 1 a 2 b 3 c 表B 两个字段 type mark a aaa b bbb c ccc d ddd select count(* ) from A where A.type not in(select type from B) group by A.type 刚才测试了是加group by引起,但是不得不加group by

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧