ホームページ >データベース >mysql チュートリアル >GROUP BY 句の NULL 値を処理してすべての行を含める方法
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 サイトの他の関連記事を参照してください。