我有一个很长的查询,它返回主键的多个值(来自 LEFT 连接)。 例如:(只显示两个字段,但大约有10个字段)
LotID Size
1 A
1 B
1 C
2 null
3 B
4 A
4 B
当我使用 GROUP_CONACT 时,它返回如下:
LotID Size
1 A,B,C
3 B
4 A,B
但我真正想要的是:
LotID Size
1 A,B,C
2 null
3 B
4 A,B
我尝试使用
GROUP_CONCAT(CONCAT_WS(',', IFNULL(Size,''))) AS Sizes,
它返回:
LotID Sizes
1 A,B,C,,,
3 B,,
4 A,B,,
它不会返回 LotID=2,也不会返回逗号。
我怎样才能获得干净的记录?
最佳答案
你一定是对 group_concat 做错了什么,因为:
select
lotid,
group_concat(size) size
from tablename
group by lotid
返回:
| lotid | size |
| ----- | ------------------ |
| 1 | A,B,C |
| 2 | null |
| 3 | B |
| 4 | A,B |
请参阅demo .
关于mysql - MYSQL中存在空值时如何进行GROUP_CONCAT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442539/