1、MySQL 5.7及之前版本
SELECT
A.要显示的字段名称,
@FIRST_VALUE := A.分组字段名称,
@last :=IF(@FIRST_VALUE = A.分组字段名称, @last + 1, 1 ) AS rn,
FROM 表1 A,(SELECT @last := 0, @FIRST_VALUE := NULL ) B
ORDER BY A.排序字段
例:
SELECT
A.DLR_CODE,
A.VAILD_CARD_NO,A.LAST_UPDATED_DATE,
@FIRST_VALUE := A.VAILD_CARD_NO ,
@last :=IF(@FIRST_VALUE = A.VAILD_CARD_NO, @last + 1, 1 ) AS rn,
FROM TB_DLR A,(SELECT @last := 0, @FIRST_VALUE := NULL ) B
ORDER BY A.VAILD_CARD_NO ,A.LAST_UPDATED_DATE DESC
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f6f0abf534e6435eafe6f98e583daaa3.png)
2、MySQL 8以上版本
select row_number()over(partition by 分组字段 order by 排序字段) from 表名;