MySQL 多行数据合并为一列

想要将 MySQL 获取的多行数据合并为一列数据,可以通过 GROUP_CONCAT 实现,具体操作如下

更多精彩

合并之前的效果

语句

1
2
3
4
5
6
7
8
SELECT
  rpr.resourceId,
  rpr.memberIds
FROM
  pt_resource_push_record rpr
WHERE
  rpr.type_code = 'RPRT_Exercise' AND
  rpr.training_id = 117

结果

  1. 期望是将相同 resourceIdmemberIds 中内容进行拼接

合并之后的效果

语句

  1. 如果使用 GROUP_CONCAT 对多行数据进行拼接,最好通过 GROUP BY 将基础条件进行过滤
  2. 否则查询到的所有数据都会直接拼接,而没有条件区分
1
2
3
4
5
6
7
8
9
10
SELECT
  rpr.resourceId,
  GROUP_CONCAT(rpr.memberIds SEPARATOR '')
FROM
  pt_resource_push_record rpr
WHERE
  rpr.type_code = 'RPRT_Exercise' AND
  rpr.training_id = 117
GROUP BY
  rpr.resourceId

结果