我正在使用group_concat
将存储邮政地址的表的多行和多列连接起来。
我的表看起来是这样的(简化的):
id | street | hNumber
-----------------------
1 | streetA | 1
-----------------------
2 | streetB | 2
-----------------------
3 | streetC | NULL
-----------------------
在某些情况下,我需要连接地址,我这样做:group_concat(DISTINCT table.street,'',table.hnumber SEPARATOR',')as street
例如,这会给我Streeta1,Streetb2的结果,这正是我想要的。 遗憾的是,该方法不适用于例如hNumber
为空的情况,在这些情况下,它只是将street
返回为null
。 对于hNumber
表单元格为空的行,我希望它跳过空字段并将street
返回为streeta1,streetc。
我希望有人能给我一个正确处理这个问题的方向。
MySQL会跳过任何包含空值的行。 简短的答案是预测一个列可能的空值,并为此做好准备。 例如:
选择GROUP_CONCAT(DISTINCT`street`,‘’,IFNULL(`hnumber`,“”)SEPARATOR',')
(如果hNumber为空,则创建空字符串)