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)
是否可以在 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)