sql >> Databasteknik >  >> RDS >> Mysql

GROUP_CONCAT returnerar NULL om något värde är NULL

I en IF uttryck kontrollera om något värde är NULL i gruppen. Jag kan komma på ett par sätt att göra det på:

1) Räkna icke-nullvärdena och jämför det med antalet rader i gruppen:

SELECT a, IF(COUNT(b) = COUNT(*), GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a

Se att det fungerar online:sqlfiddle

2) Räkna antalet nollvärden med SUM :

SELECT a, IF(SUM(b IS NULL) = 0, GROUP_CONCAT(b), NULL) AS bs
FROM gc
GROUP BY a

Se att det fungerar online:sqlfiddle




  1. Skicka en rad värden till en sql-fråga i ruby?

  2. TRIGGERS som gör att INSERT misslyckas? Möjlig?

  3. Varför ska jag inte använda mysql_*-funktioner i PHP?

  4. Lös PLS-00323-fel i Oracle