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

GROUP_CONCAT vrátí NULL, pokud je nějaká hodnota NULL

V IF výraz zkontrolujte, zda je nějaká hodnota ve skupině NULL. Napadá mě několik způsobů, jak to udělat:

1) Spočítejte nenulové hodnoty a porovnejte je s počtem řádků ve skupině:

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

Podívejte se, jak to funguje online:sqlfiddle

2) Spočítejte počet hodnot null pomocí SUM :

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

Podívejte se, jak to funguje online:sqlfiddle




  1. Problémy s připojením MySQLdb

  2. Vyhledejte řetězec v celé tabulce v mySQL

  3. Proč se výsledek COUNT zdvojnásobí, když se připojím dva?

  4. MySQL vyhledávání v seznamu čárek