如何将mysql中的行分组为具有特定大小的块?
我有一张桌子叫users
其中有这些字段id
name
我想做一个查询,将用户分组成每行3个名字的chuck。
示例表:
1 name1
2 name2
3 name4
4 name5
5 name5
6 name6
7 name7
结果应该是
name1,name2,name3
name4,name5,name6
name7
当然要这样做
最佳答案
http://sqlfiddle.com/#!9/a6b42/5
SELECT GROUP_CONCAT(name),
(IF(@i = 3 OR @i IS NULL, @i:=1, @i:=@i+1 ))as idx,
(IF(@gr_idx IS NULL, @gr_idx:=1, IF(@i = 1, @gr_idx:=@gr_idx+1,@gr_idx) )) as gr_idx
FROM users
GROUP BY gr_idx