MySQL在排序时提供排名?

时间:2012-01-12 15:31:28

标签: mysql sql sorting

假设我在MySQL中有如下表:

create table user(name varchar(20), join_time int(11) )

这是我的问题:在以join_time DESC顺序获取记录时,如何获取每条记录的排名?

提前谢谢。

2 个答案:

答案 0 :(得分:3)

尝试:

select @rownum:=@rownum+1 `rank`, u.* 
from (select * from `user` order by join_time desc) u, 
     (SELECT @rownum:=0) r 

答案 1 :(得分:0)

你需要的是row_number() over (order by something),它将根据提供的订单子句返回行号,但我不确定它是否在mysql中可用?

通过一些搜索发现mysql中没有row_number函数,但有很多解决方法可以命名一个http://craftycodeblog.com/2010/09/13/rownum-simulation-with-mysql/