sql >> Databáze >  >> RDS >> Mysql

MySql count() vrátí 0, pokud nebyly nalezeny žádné záznamy

Pro měsíc January neexistuje žádný záznam proto nedosahujete žádného výsledku. Jedno řešení, které funguje, je připojení poddotazu se seznamem měsíců, které chcete v seznamu zobrazit.

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

VÝSTUP

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


  1. Frekvence počítání mysql

  2. Dobrý návod, jak aktualizovat databázi Mysql pomocí formuláře PHP?

  3. Krásné bloky Boilerplate

  4. Počítejte výskyty znaků v řetězci pomocí MySQL