sql >> Databasteknik >  >> RDS >> Mysql

MySql count() för att returnera 0 om inga poster hittades

Det finns inget register för månaden January det är därför du inte får något resultat. En lösning som fungerar är att gå med i en underfråga med innehåller en lista över månader som du vill ska visas på listan.

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

OUTPUT

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


  1. Dynamisk e-postkonfiguration med värden från databasen [Laravel]

  2. Concat det andra kolumnvärdet om det första kolumnvärdet är detsamma

  3. Skriv ut data i ResultSet tillsammans med kolumnnamn

  4. RODBC Temporary Table Issue vid anslutning till MS SQL Server