sql >> Database teknologi >  >> RDS >> Mysql

Få tomme resultater for 'COUNT'/'GROUP BY' MySQL-forespørgsel

Dette er ikke en MySQL-fejl.

En aggregeringsforespørgsel returnerer én række pr. gruppe, der stødes på. Uden en group by , der er én gruppe -- hele bordet. Jeg indrømmer, at det er lidt vanskeligt, for der er stadig én gruppe, selv når der ikke er nogen rækker i tabellen.

Med en group by , der er en række pr. gruppe. Hvis der ikke er nogen rækker i en gruppe, vises gruppen ikke. I dit tilfælde, forespørgslen:

SELECT `a`, `b`, COUNT(*) as `c`
FROM `mytable` 
WHERE `status` = 1

Returnerer én række med to NULL s efterfulgt af 0 .

Den samme forespørgsel med:

GROUP BY `a`,`b`

returnerer ingen rækker, fordi der ikke er nogen rækker til at danne grupper.



  1. DeleteDatabase understøttes ikke af udbyderen, Oracle with Entity Framework

  2. Indsamlingsmetode:FINDER Funktion i Oracle-databasen

  3. Er der nogen forskel mellem varchar(10) og varchar(1000), når vi gemmer streng, hvis længde er mindre end 10?

  4. Få tabel-id efter indsættelse med ColdFusion og MySQL