ホームページ >データベース >mysql チュートリアル >すべての行を保持しながら GROUP BY クエリから NULL 値を除外する方法

すべての行を保持しながら GROUP BY クエリから NULL 値を除外する方法

DDD
DDDオリジナル
2024-12-24 09:13:54159ブラウズ

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

NULL 値を除外する GROUP BY クエリ

GROUP BY 関数を使用してデータを集計する場合、NULL 値を除外する必要があるシナリオが発生する可能性があります。グループ化操作からの NULL 値。これは通常、指定したフィールド内の NULL 値を持つすべての行を保持したい場合に発生します。

これを実現するには、NULL 値を一意の識別子に置き換える方法が 1 つあります。これは、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

この例では、NULL 祖先を一意の UUID() 値に置き換えます。これにより、NULL の祖先がグループ化されなくなり、祖先フィールドの値に関係なく、クエリはすべての行を返します。

以上がすべての行を保持しながら GROUP BY クエリから NULL 値を除外する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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