यह एक MySQL बग नहीं है।
एक एकत्रीकरण क्वेरी प्रति समूह एक पंक्ति लौटाएगी जो सामने आई है। बिना group by
. के , एक समूह है -- संपूर्ण तालिका। मैं मानता हूँ कि यह थोड़ा मुश्किल है, क्योंकि तालिका में कोई पंक्तियाँ न होने पर भी एक समूह है।
group by
. के साथ , प्रति समूह एक पंक्ति है। यदि किसी समूह में कोई पंक्तियाँ नहीं हैं, तो समूह प्रकट नहीं होता है। आपके मामले में, क्वेरी:
SELECT `a`, `b`, COUNT(*) as `c`
FROM `mytable`
WHERE `status` = 1
दो NULL
. के साथ एक पंक्ति लौटाएगा s के बाद 0
।
इसी क्वेरी के साथ:
GROUP BY `a`,`b`
कोई पंक्ति नहीं लौटाएगा क्योंकि समूह बनाने के लिए कोई पंक्तियाँ नहीं हैं।