按行排序的MYSQL位置

时间:2011-08-11 21:36:17

标签: php mysql

我已经浏览过谷歌搜索结果,但找不到简单的答案,我有一张桌子

id,points(以及更多字段,但它们不会影响任何内容)

我如何获得由积分DESC订购的记录24(id)的位置?

4 个答案:

答案 0 :(得分:4)

我不确定我是否理解你的问题

select * from table order by points desc limit 23,1

答案 1 :(得分:2)

Select Count(*) from (
Select ID from UnNamedTable A where A.points>(Select B.Points from UnNamedTable B where B.ID=24)
)

答案 2 :(得分:1)

您是否试图根据积分系统弄清楚用户所在的位置? 如果是这样,那么只需找到有多少用户拥有比特定用户更多的积分,然后添加1。

SELECT COUNT(*) + 1 AS 'position' FROM table WHERE points > 
   ( SELECT points FROM table WHERE id = someIDhere )

答案 3 :(得分:0)

您可以创建一个变量来跟踪排序后的行位置。像这样的东西会起作用:

select @rownum:=@rownum+1 ‘rank’, p.* from table1 p, (SELECT @rownum:=0) ID order by Points desc limit 10;