You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

mysqli带WHERE与GROUP BY的COUNT查询:如何显示无记录日期的0计数

解决特定日期统计无记录日期不显示的问题

我之前在做一项日期记录统计的需求时,遇到了个挺棘手的问题:我需要统计一批特定日期的记录数量,但用常规查询语句跑出来的结果里,那些没有对应记录的日期直接就“消失”了,完全达不到我要展示所有目标日期(哪怕计数为0)的要求。

后来我摸索出了有效的解决方法:先新建一张专门存放所有待查询特定日期的表(比如命名为target_dates,表中仅需一个存储日期的字段,比如target_date,把所有需要统计的日期都预先录入进去),接着通过左连接这张日期表和业务数据表的方式编写查询语句,这样就能确保所有目标日期都能在结果中显示,无记录的日期对应的计数自动为0。

给大家贴一下我最终用到的查询语句示例(假设业务数据表为business_records,日期字段是record_date,统计的是记录ID的数量):

SELECT
    td.target_date,
    COUNT(br.record_id) AS record_count
FROM target_dates td
LEFT JOIN business_records br ON td.target_date = br.record_date
GROUP BY td.target_date
ORDER BY td.target_date;

用这个方式查询,不管目标日期在业务表里有没有对应记录,都会被包含在结果集中,完美解决了之前的问题!

内容的提问来源于stack exchange,提问作者Rooneymelooney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:03:30