我已经浏览过谷歌搜索结果,但找不到简单的答案,我有一张桌子
id,points(以及更多字段,但它们不会影响任何内容)
我如何获得由积分DESC订购的记录24(id)的位置?
答案 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;