Đây không phải là lỗi MySQL.
Truy vấn tổng hợp sẽ trả về một hàng cho mỗi nhóm gặp phải. Không có nhóm group by
, có một nhóm - toàn bộ bảng. Tôi thừa nhận điều này hơi phức tạp, vì vẫn có một nhóm, ngay cả khi không có hàng nào trong bảng.
Với nhóm group by
, có một hàng cho mỗi nhóm. Nếu không có hàng nào trong một nhóm, thì nhóm đó không xuất hiện. Trong trường hợp của bạn, truy vấn:
SELECT `a`, `b`, COUNT(*) as `c`
FROM `mytable`
WHERE `status` = 1
Sẽ trả về một hàng, với hai NULL
được theo sau bởi 0
.
Truy vấn tương tự với:
GROUP BY `a`,`b`
sẽ không trả về hàng nào vì không có hàng nào để tạo nhóm.