一尘不染

将多行合并为一个用空格分隔的字符串

sql

所以我有5行像这样

userid, col
--------------
1, a
1, b
2, c
2, d
3, e

我将如何查询,使其看起来像这样

userid, combined
1, a b
2, c d
3, e

阅读 155

收藏
2021-03-17

共1个答案

一尘不染

使用GROUP_CONCAT聚合函数

  SELECT yt.userid,
         GROUP_CONCAT(yt.col SEPARATOR ' ') AS combined
    FROM YOUR_TABLE yt
GROUP BY yt.userid

默认的分隔符是逗号(“,”),因此您需要指定单个空格的SEPARATOR以获得所需的输出。

如果要确保GROUP_CONCAT中值的顺序,请使用:

  SELECT yt.userid,
         GROUP_CONCAT(yt.col ORDER BY yt.col SEPARATOR ' ') AS combined
    FROM YOUR_TABLE yt
GROUP BY yt.userid
2021-03-17