Mysql
 sql >> Datenbank >  >> RDS >> Mysql

GROUP_CONCAT gibt NULL zurück, wenn irgendein Wert NULL ist

In einem IF Ausdruck prüfen, ob irgendein Wert in der Gruppe NULL ist. Mir fallen dazu ein paar Möglichkeiten ein:

1) Zählen Sie die Nicht-Null-Werte und vergleichen Sie sie mit der Anzahl der Zeilen in der Gruppe:

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

Sehen Sie, wie es online funktioniert:sqlfiddle

2) Zählen Sie die Anzahl der Nullwerte mit SUM :

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

Sehen Sie, wie es online funktioniert:sqlfiddle