qq_32849217
qq_32849217
采纳率33.3%
2016-10-27 06:16

mysql查询每天的记录,但是若当天没有记录的话,怎么让其返回0

已采纳

我要获取每天添加的记录数,

我的sql语句,
select date_format(u.addtime,'%Y-%m-%d') addday,count(1) cnt
from 'user' u
where u.addtime>='2016-9-21 00:00:00' and u.addtime<now() group by addday

现在的结果是这样的:

图片说明
像2016-9-23,因为没有记录,所以就没有显示,我想要这段时间每天的记录数,即使9-23没有记录,count也要为0,这个怎么解决啊?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • w172087242 little_how 5年前

    我不知道你的场景是什么,但是数据库无中生有特别难;
    1.建议在程序中处理;
    2.实在要用数据库处理则需要一张全日期表;比如2016的一天是一条数据;
    然后用日期表来左连接你的这个结果集,日期限制也要在日期表,然后再用case when;

    希望能帮你找到思路....

    点赞 评论 复制链接分享
  • yangjinjing666 yangjinjing666 6月前

    我是新建了一张表
    每日新增用户表
    create_time(创建日期)
    add_member(新增用户数量)
    定时任务提前往里面加一条为0的数据

    点赞 评论 复制链接分享
  • baidu_34046383 星之火燎原 5年前

    select case when u.addtime!='' then date_format(u.addtime,'%Y-%m-%d') else 0 end addday,count(1) cnt
    from 'user' u
    where u.addtime>='2016-9-21 00:00:00' and u.addtime<now() group by addday
    试一下吧,不行的话就另请高明了

    点赞 评论 复制链接分享

相关推荐