最终SQL
SELECT
@i := CASE WHEN @gtype = w.`NAME` THEN @i + 1 ELSE 1 END rn,
w.*,
@gtype := w.`NAME` ty
FROM
(SELECT * from warehouse GROUP BY `NAME`,CATEGORY_ID,REPOSITORY_ID,VERSION ORDER BY VERSION) w,
( SELECT @i := 0, @gtype := '' ) b
WHERE
1 = 1
(SELECT * from warehouse GROUP BY NAME
,CATEGORY_ID,REPOSITORY_ID,VERSION) w
这句GROUP BY是为了将相同名称的数据记录放在一起
PS:@i,w.*,@gtype顺序不能变哦~