MySQL GROUP_CONCAT(DISTINCT ...) 忽略数据

我正在连接存储邮政地址的表的多行和多列,使用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。


我希望有人能指出我以正确的方式解决这个问题的方向。


FFIVE
浏览 121回答 1
1回答

慕的地8271018

MySQL 会跳过任何包含 NULL 值的行。简短的回答是预测列可能的 NULL 值并为此做好准备。例如:SELECT GROUP_CONCAT(DISTINCT `street`, ' ' , IFNULL(`hNumber`,"") SEPARATOR ', ')(创建空字符串,如果 hNumber 为 NULL)
打开App,查看更多内容
随时随地看视频慕课网APP