mysql分组,编号,取某几行数据
通过变量,case when 对数据编号(一定要用order by 对分组字段排序,保证编号连续),再根据编号筛选取数。
select
-- rownum 判断 @pre_parent_code是否和当前的parent_code一样 ,true:让 @i+=1 false:重置@i
(@i := case when @pre_parent_code=parent_code then @i + 1 else 1 end ) rownum,
my_test.*,
-- 设置 @pre_parent_code等于上一个 parent_code
(@pre_parent_code:=parent_code)
from my_test ,
(SELECT @i := 0, @pre_parent_code:='') AS a
group by parent_code ,code ,id
order by parent_code
参考文章:mysq分组排序加序号