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

Ottenere risultati vuoti per la query MySQL 'COUNT'/'GROUP BY'

Questo non è un bug di MySQL.

Una query di aggregazione restituirà una riga per gruppo rilevato. Senza un group by , c'è un gruppo:l'intero tavolo. Ammetto che è un po' complicato, perché c'è ancora un gruppo, anche quando non ci sono righe nella tabella.

Con un group by , c'è una riga per gruppo. Se non ci sono righe in un gruppo, il gruppo non viene visualizzato. Nel tuo caso, la query:

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

Restituirà una riga, con due NULL s seguito da 0 .

La stessa query con:

GROUP BY `a`,`b`

non restituirà righe perché non ci sono righe per formare gruppi.