Mysql group_concat 按计数拆分

Mysql group_concat split by count

是否可以在 mysql 中执行 group_concat 并有某种组限制?从而允许将组拆分为多个结果行?

例如

如果我有一个名为 num 的 table,如下所示:

    val
    ---
    1
    2
    3
    4
    5
    ...

我使用语句 select group_concat(val) from num

我得到结果

1,2,3,4,5,...

我想做的是将组限制设置为 2 并得到结果

1,2
3,4
5,...

现在我的用例是我想要 select 作为大约 500 个整齐的组的数十万个值。

可能吗?

您可以使用用户变量创建行号,然后将行号除以组大小进行分组。

SELECT GROUP_CONCAT(val) AS vals
FROM (SELECT val, @rownum := @rownum + 1 AS rownum
      FROM (SELECT val FROM nums ORDER BY val) AS vals
      CROSS JOIN (SELECT @rownum := -1) AS vars) AS temp
GROUP BY FLOOR(rownum/500)