sql >> Database >  >> RDS >> Mysql

Lege resultaten krijgen voor 'COUNT'/'GROUP BY' MySQL-query

Dit is geen MySQL-bug.

Een aggregatiequery retourneert één rij per groep die wordt aangetroffen. Zonder een group by , er is één groep -- de hele tafel. Ik geef toe dat dit een beetje lastig is, omdat er nog steeds één groep is, zelfs als er geen rijen in de tabel staan.

Met een group by , er is één rij per groep. Als er geen rijen in een groep zijn, wordt de groep niet weergegeven. In uw geval de vraag:

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

Retourneert één rij, met twee NULL s gevolgd door 0 .

Dezelfde zoekopdracht met:

GROUP BY `a`,`b`

zal geen rijen retourneren omdat er geen rijen zijn om groepen te vormen.



  1. Hoe gebruik je de WITH-clausule in MySQL?

  2. Is een normale MySql-index vereist als we een samengestelde index hebben?

  3. Hoe AUTO_INCREMENT opnieuw in te stellen in MySQL

  4. Een tekstbestand lezen en inhoud overbrengen naar mysql-database