mysql分组并每组添加序号

-- 模拟表
select * from tb_test;
-- rownum  判断  @pre_parent_code是否和当前的parent_code一样 ,true:让 @i+=1 false:重置@i
-- 再定义一个变量@pre_parent_code:="" 再存上一个 parent_code  ,只要  pre_parent_code不等于当前的parent_code  让 @i:=0 else  @i+=1 就ok了
-- 设置 @pre_parent_code等于上一个 parent_code select (@i:=case when @pre_parent_code=parent_code then @i+1 else 1 end) rownum,tb_test.*,(@pre_parent_code:=parent_code) from tb_test,(select @i:=0)a GROUP BY parent_code,code,id ORDER BY parent_code

 

原文地址:https://www.cnblogs.com/bin521/p/17278089.html