Maison >base de données >tutoriel mysql >Comment exclure les valeurs NULL des requêtes GROUP BY tout en préservant toutes les lignes ?
Requête GROUP BY excluant les valeurs NULL
Lorsque vous utilisez la fonction GROUP BY pour agréger des données, vous pouvez rencontrer un scénario dans lequel vous devez exclure Valeurs NULL de l’opération de regroupement. Cela se produit généralement lorsque vous souhaitez conserver toutes les lignes avec des valeurs NULL dans le champ spécifié.
Pour y parvenir, une approche consiste à remplacer les valeurs NULL par un identifiant unique. Cela peut être fait en utilisant la fonction IFNULL() :
SELECT `table1`.*, IFNULL(ancestor,UUID()) AS `unq_ancestor`, GROUP_CONCAT(id SEPARATOR ',') AS `children_ids` FROM `table1` WHERE (enabled = 1) GROUP BY unq_ancestor
Dans cet exemple, nous remplaçons les ancêtres NULL par une valeur UUID() unique. Cela garantit que les ancêtres NULL ne seront pas regroupés et que la requête renverra toutes les lignes quelle que soit la valeur de leur champ ancêtre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!