Maison >base de données >tutoriel mysql >Comment exclure les valeurs NULL des requêtes GROUP BY tout en préservant toutes les lignes ?

Comment exclure les valeurs NULL des requêtes GROUP BY tout en préservant toutes les lignes ?

DDD
DDDoriginal
2024-12-24 09:13:54158parcourir

How to Exclude NULL Values from GROUP BY Queries While Preserving All Rows?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn