これはMySQLのバグではありません。
集計クエリは、検出されたグループごとに1つの行を返します。 group by
なし 、1つのグループ(テーブル全体)があります。テーブルに行がない場合でも、グループが1つ残っているため、これは少し注意が必要です。
group by
、グループごとに1つの行があります。グループに行がない場合、グループは表示されません。あなたの場合、クエリ:
SELECT `a`, `b`, COUNT(*) as `c`
FROM `mytable`
WHERE `status` = 1
2つのNULL
を含む1行を返します sの後に0
。
同じクエリ:
GROUP BY `a`,`b`
グループを形成する行がないため、行は返されません。