首页 > 代码库 > MYSQL获得查询记录的行号

MYSQL获得查询记录的行号

对于获得查询记录的行号这一功能,Oracle 中可以使用标准方法(8i版本以上),也可以使用非标准的ROWNUM,MS SQL Server 则在 2005 版本中提供了ROW_NUMBER()函数。但在 MySQL 中似乎还没有这样的系统自带功能 = =!真是悲剧啊~

好在民间的力量总是强大的,我们可以自己构造一个类似的功能!

表 a:
UID Money
2 444
1 222
3 555
4 6666
想要以Money排序取得排行号:SQL文如下:

Select UID,(@rowNum:=@rowNum+1) as rowNo
From a,
(Select (@rowNum :=0) ) b
Order by a.Money Desc

输入结果如下:

UID rowNo
4 1
3 2
2 3
1 4

MYSQL获得查询记录的行号