Mysql
 sql >> база данни >  >> RDS >> Mysql

Получаване на празни резултати за 'COUNT'/'GROUP BY' MySQL заявка

Това не е грешка в MySQL.

Заявка за агрегиране ще върне по един ред за срещана група. Без group by , има една група -- цялата таблица. Признавам, че това е малко сложно, защото все още има една група, дори когато няма редове в таблицата.

С group by , има по един ред на група. Ако в дадена група няма редове, групата не се появява. Във вашия случай, заявката:

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

Ще върне един ред с два NULL s последвано от 0 .

Същата заявка с:

GROUP BY `a`,`b`

няма да върне редове, защото няма редове за формиране на групи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на резултатите от MySQL заявка в таблица с помощта на PHP

  2. Синтаксис на съхранена процедура на MySQL IF else

  3. Как да съхранявате 128-битово число в една колона в MySQL?

  4. Laravel подрежда резултатите по конкретни стойности

  5. Как да взема информация от една таблица, като същевременно добавям стойности?