在SQL 中將具有NULL 值的資料分組
使用GROUP BY 函數將資料分組是一種用於匯總和分組檢索資料的強大技術。然而,有時需要對資料進行分組,同時忽略 NULL 值。這可以透過巧妙地操作 GROUP BY 子句來實現。
在給定的查詢中,GROUP BY 用於按祖先欄位對行進行分組。但是,當多行的祖先為 NULL 時,它們將被分組在一起,導致僅返回一行。為了解決這個問題,我們可以使用 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
在這個修改後的查詢中,我們使用 IFNULL 來分配唯一的祖先欄位中的識別碼 (UUID) 為 NULL 值。這將建立一個名為 unq_ancestor 的唯一列,然後將其用於分組。因此,所有行,包括具有 NULL 祖先值的行,都將單獨分組,以便您可以擷取所有所需的資料。
以上是如何在「GROUP BY」子句中處理 NULL 值時對 SQL 資料進行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!