假设我在MySQL中有如下表:
create table user(name varchar(20), join_time int(11) )
这是我的问题:在以join_time DESC顺序获取记录时,如何获取每条记录的排名?
提前谢谢。
答案 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/