簡體   English   中英

MySQL GROUP_CONCAT(DISTINCT ...) 忽略數據

[英]MySQL GROUP_CONCAT(DISTINCT …) ignores data

我正在使用GROUP_CONCAT連接存儲郵政地址的表的多行和多列。

我的表看起來像這樣(簡化):

id | street  | hNumber
-----------------------
1  | streetA | 1       
-----------------------
2  | streetB | 2      
-----------------------
3  | streetC | NULL    
-----------------------

在某些情況下,我需要像這樣連接地址: GROUP_CONCAT(DISTINCT table.street, ' ', table.hNumber SEPARATOR ', ') as street

例如,這會給我StreetA 1, StreetB 2結果,這正是我想要的。 遺憾的是,這種方法不適用於例如hNumber為空的情況,在這些情況下,它只會將street作為NULL返回。 對於hNumber表格單元格為空的行,我希望看到它只是跳過空字段並將street作為StreetA 1, StreetC 返回

我希望有人能指出我以正確方式解決這個問題的方向。

MySQL 會跳過任何包含 NULL 值的行。 簡短的回答是預測列的可能 NULL 值並為此做好准備。 例如:

SELECT GROUP_CONCAT(DISTINCT `street`, ' ', IFNULL(`hNumber`,"") SEPARATOR ', ')

(創建空字符串,如果 hNumber 為 NULL)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM