sql >> Database teknologi >  >> RDS >> Mysql

Sådan returneres 0 i stedet for null, når du bruger COUNT i MySQL

Brug COALESCE() fungere. COALESCE() tager mindst 2 argumenter, beregnet i rækkefølge, og returnerer det første ikke-nul-argument. Så COALESCE(null, 0) ville returnere 0 , og COALESCE(null, null, null, null, 1) ville returnere 1 . Her er MySQL's dokumentation om COALESCE() .

Når du genlæser din forespørgsel, bør du være i stand til at få de ønskede resultater sådan her:

SELECT <all the fields you want>, b.songsID, COUNT(*) AS projects_count
FROM $sTable b
LEFT OUTER JOIN $sTable2 bb ON bb.songs_id = b.songsID
$sWhere
GROUP BY b.songsID
$sOrder
$sLimit

Som jeg sagde, det burde virke, men noget ved det føles ikke helt rigtigt.



  1. Sådan ændres lokalitet, når du formaterer tal i PostgreSQL

  2. Få envelope, dvs. overlappende tidsrum

  3. MAX vs Top 1 - hvad er bedre?

  4. Kolonnenavnet eller antallet af angivne værdier matcher ikke tabeldefinitionen