我有一个表来存储我游戏用户的分数 - 如果可能的话,我希望能够单独使用mySQL找到他们的排名(因为如果玩家的数量以指数方式增加,那么php循环时间会解析整个数据库将急剧增加。)
到目前为止,我已经能够得到这个声明
select @rownum:=@rownum+1 'rank', s.* from top100 s, (select @rownum:=0) r order by score desc
返回一个应用了排名的结果集 - 然后我需要能够做的是使用子查询找到其中的单个项目,以便从前一个插入中找到最后一个insert_id的玩家。
非常感谢任何帮助。
答案 0 :(得分:1)
SELECT t.*,
(SELECT COUNT(*)
FROM top100 t2
WHERE t2.score > t.score) AS rank
FROM top100 t
WHERE id = LAST_INSERT_ID()