mysql - MYSQL中存在空值时如何进行GROUP_CONCAT?

标签 mysql concatenation group-concat concat-ws

我有一个很长的查询,它返回主键的多个值(来自 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/

相关文章:

python - 在 Pandas 中将两个数据合并在一起

python - 根据第一列中的字母数将行与上一行连接起来

mysql - 如何更改 AWS RDS 上的 group_concat_max_len

mysql - group_concat 问题 (mysql)

mysql - 删除巨大列表中的重复行

MySQL unix_timestamp计算

vue.js - 如何在 vue.js 中连接两个过滤值?

Mysql 5.6.12 Group_concat 与内部连接问题

mysql - 将日期与子查询进行比较

php - 如何在多列中进行搜索