sql >> Databasteknik >  >> RDS >> Mysql

Få tomma resultat för 'COUNT'/'GROUP BY' MySQL-fråga

Detta är inte en MySQL-bugg.

En aggregeringsfråga returnerar en rad per grupp som påträffas. Utan en group by , det finns en grupp -- hela tabellen. Jag erkänner att det här är lite knepigt, eftersom det fortfarande finns en grupp, även när det inte finns några rader i tabellen.

Med en group by , det finns en rad per grupp. Om det inte finns några rader i en grupp visas inte gruppen. I ditt fall, frågan:

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

Returnerar en rad, med två NULL s följt av 0 .

Samma fråga med:

GROUP BY `a`,`b`

returnerar inga rader eftersom det inte finns några rader för att bilda grupper.



  1. Vad returnerar en framgångsrik MySQL DELETE? Hur kontrollerar jag om DELETE lyckades?

  2. MYSQL Välj på två värden en kolumn

  3. kan couchdb göra loopar

  4. Hur man exporterar-importerar databas i Oracle 11g (Application Express Edition)?