[英]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.