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

MySql count() за връщане на 0, ако няма намерени записи

Няма запис за месец January затова нямаш резултат. Едно решение, което работи, е като се присъедините към подзаявка със списък с месеци, които искате да се показват в списъка.

SELECT count(b.id) as totalRec
FROM   (
            SELECT 'January' mnth
            UNION ALL
            SELECT 'February' mnth
            UNION ALL
            SELECT 'March' mnth
        ) a
        LEFT JOIN post b
            ON a.mnth = DATE_FORMAT(b.date, '%M') AND
               year(b.date) =  '2013' AND 
               DATE_FORMAT(b.date, '%M') IN ('January', 'February', 'March') 
GROUP  BY year(b.date)-month(b.date) 
ORDER  BY b.date ASC

ИЗХОД

╔══════════╗
║ TOTALREC ║
╠══════════╣
║        0 ║
║        7 ║
║        9 ║
╚══════════╝


  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

  2. mysql:групирайте по идентификатор, получете най-висок приоритет за всеки идентификатор

  3. Как да архивирате съхранените процедури в MySQL

  4. SQL грешка 1406 Данните са твърде дълги за колона

  5. Ръководство за проектиране на база данни за система за управление на инвентара в MySQL