我正在尝试使用 mysql 获取值,但在没有值的特定月份它不会给出 0...
我尝试了 IFNULL,但结果相同,并且没有为空月返回 0。
SELECT IFNULL(COUNT(`bileti_id`),0) FROM `wp_biletistatus` WHERE
`user_id`= 1 and `status`=1 GROUP BY MONTH(`date`) ORDER BY `date` ASC
Limit 10
这也是我想获得的几个月的查询:
SELECT MONTHNAME(`date`) FROM `wp_biletistatus` WHERE `user_id`= 1
GROUP BY MONTH(`date`) ORDER BY `date` ASC Limit 10
谁能帮助我如何让没有值(value)的月份为 0。
最佳答案
您在没有值(value)的月份没有得到零的原因是因为它根本不存在。例如,您需要有一个固定值或至少一个包含所有月份列表的子查询。
SELECT months.MonthNum,
COUNT(a.bileti_id)
FROM (
SELECT 1 AS MonthNum UNION ALL SELECT 2 UNION ALL
SELECT 3 UNION ALL SELECT 4 UNION ALL
SELECT 5 UNION ALL SELECT 6 UNION ALL
SELECT 7 UNION ALL SELECT 8 UNION ALL
SELECT 9 UNION ALL SELECT 10 UNION ALL
SELECT 11 UNION ALL SELECT 12
) months
LEFT JOIN wp_biletistatus a
ON months.MonthNum = MONTH(a.date)
WHERE a.user_id= 1 and a.status=1
GROUP BY months.MonthNum
ORDER BY months.MonthNum
关于mysql - 返回 NULL 时在 GroupByMonth 中获取 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30026965/