http://stackoverflow.com/questions/3333665/rank-function-in-mysql搜索得到比较通用的解决方法, 但性能未知.
但以上解决方法有一个问题, 我想要得到某用户的排名, 不需要取出所有信息.
在我有限的知识下, 解决方法就是非实时. 在某地将所有排名暂存起来, 然后隔一段时间刷新一下. 平常就直接都这个之前暂存的排名.
如果要实时该如何做?
设想是:
首先 ORDER BY 排列, 一行一行进行匹配.
设置一个临时变量 @
user_rank = 0
检查当前 user_id 是否是我们想要的, 如果不是, 则临时变量自增 1, 如果是, 则返回
只返回一个值, 计算前几名的时候性能佳.
但我不懂 MySQL, 不知道具体该怎么实现. 求教.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/208822
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.