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
Libérer: 2024-12-24 09:13:54
original
192 Les gens l'ont consulté

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
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal