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

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

Mary-Kate Olsen
リリース: 2024-12-15 13:12:17
オリジナル
551 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート