如何使用MySQL将group_concat结果分成多行?

时间:2017-08-16 06:46:55

标签: mysql group-concat

我的表格如下:

insert into testing values
('0547366'),
('0547367'),
('0547368'),
('0547369'),
('0547370'),
('0547371'),
('0547372'),
('0547373'),
('0547374'),
('0547375'),
('0547376');

以下是值:

select group_concat(bnum) as nums from testing;

我使用了以下查询:

+============
nums
+============
0547366,0547367,0547368,0547369,0547370,0547371,0547372,0547373,0547374,0547375,0547376
+============

并获得以下结果:

+============
nums
+============
0547366,0547367,0547368
+============
0547369,0547370,0547371
+============
0547372,0547373,0547374
+============
0547375,0547376
+============

但我希望得到以下结果,其中我需要多组数字,其中每组中的3个数字用逗号分隔:

HRtest[,14:176][HRtest[,14:176] > 0] <- 1

如何编写此查询?

1 个答案:

答案 0 :(得分:1)

select GROUP_CONCAT(bnum),@cnt := @cnt+1,concat('a',@cnt1),
    case when MOD(@cnt,3)=0 then @cnt1:=@cnt1+1 end,@cnt1
    from testing,(SELECT @cnt :=0,@cnt1:=0)z GROUP BY @CNT1 ORDER BY@CNT;

您可以尝试以上查询。

Fiddle Demo就在这里。