php - 按月计数返回包含 13 个值的字符串

标签 php mysql count

旨在每月输出一串总计的 SQL 查询正在输出 13 个值(第 0 个月?)

我需要在代码中添加什么才能从第 1 个月(一月)而不是第 0 个月开始计数?

<?php 
$sql = "SELECT MONTH(SightingDate) AS month, COUNT(CASE WHEN SpeciesName = 'Choreutis pariana' and Notes LIKE '%Adult%'  THEN 1 END) cnt
        FROM GAINLP 
        GROUP BY MONTH(SightingDate);";
if ($result3=mysqli_query($connect,$sql)) {
    while($row=$result3->fetch_assoc()) {
        echo $row['cnt'] . ',';
    }
}
?>

数据库包含 8 月份的一条记录。我期待 (0,0,0,0,0,0,0,1,0,0,0,0) < 12 个逗号分隔值的结果。

相反,上面的代码输出 (0,0,0,0,0,0,0,0,0,1,0,0,0) <13 CSV

最佳答案

这可能是因为数据库中的某些行具有无效或 NULL SightingDate 值,因此 MONTH(SightingDate) 为返回 0NULL,从而在输出中提供 13 行(1 到 12 表示 1 月到 12 月加上 0/NULL)。您可以运行此查询来查找错误日期:

SELECT * FROM GAINLP WHERE MONTH(SightingDate) NOT BETWEEN 1 AND 12

关于php - 按月计数返回包含 13 个值的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095618/

相关文章:

mysql - SQL 连接 + 计数

php - 什么是 php 中纯全文搜索的快速替代方案?

php - 如何使用社交网络登录或oAuth?

php - 使用 json 解码获取一些数据

mysql - UPDATE SQL 命令不适用于 GO 语言

javascript - 为什么没有数据消息显示? (试图创建谷歌图表)

python - 另一种计算列表中出现次数的方法

SQL 查询帮助 : Returning distinct values from Count subquery

php - mySQL显示为数组

php - 如何获取插入行的ID并更新行?