对于获得查询记录的行号这一功能,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