ホームページ >データベース >mysql チュートリアル >GROUP BY 句の NULL 値を処理してすべての行を含める方法

GROUP BY 句の NULL 値を処理してすべての行を含める方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-15 13:12:17554ブラウズ

How to Handle NULL Values in GROUP BY Clauses to Include All Rows?

GROUP BY Null の処理

GROUP BY を利用してデータを集計する場合、NULL 値の処理方法を考慮することが重要です。デフォルトでは、NULL 値はグループ化され、欠損値のある行は除外される可能性があります。

このシナリオでは、祖先フィールドによって行をグループ化しており、祖先が NULL である行を含める必要があります。これを実現するには、次の回避策を利用できます。

SELECT `table1`.*,
    IFNULL(ancestor, UUID()) AS `unq_ancestor`,
    GROUP_CONCAT(id SEPARATOR ',') AS `children_ids`
FROM `table1`
WHERE (enabled = 1)
GROUP BY `unq_ancestor`;

UUID() 関数は、NULL 祖先値を持つ行ごとに一意の識別子を生成します。これにより、祖先が NULL の行には確実に一意の識別子が割り当てられ、グループ化されなくなります。

GROUP BY 句で祖先フィールドを unq_ancestor に置き換えることで、クエリは一意の識別子に基づいて行をグループ化するようになります。 NULL 値の場合、すべての行が結果セットに含まれます。

以上がGROUP BY 句の NULL 値を処理してすべての行を含める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。