http://stackoverflow.com/questions/3333665/rank-function-in-mysql
搜索得到比较通用的解决方法, 但性能未知.
但以上解决方法有一个问题, 我想要得到某用户的排名, 不需要取出所有信息.
在我有限的知识下, 解决方法就是非实时. 在某地将所有排名暂存起来, 然后隔一段时间刷新一下. 平常就直接都这个之前暂存的排名.
如果要实时该如何做?
设想是:
首先 ORDER BY 排列, 一行一行进行匹配.
设置一个临时变量 @user_rank = 0
检查当前 user_id 是否是我们想要的, 如果不是, 则临时变量自增 1, 如果是, 则返回
只返回一个值, 计算前几名的时候性能佳.
但我不懂 MySQL, 不知道具体该怎么实现. 求教.
搜索得到比较通用的解决方法, 但性能未知.
但以上解决方法有一个问题, 我想要得到某用户的排名, 不需要取出所有信息.
在我有限的知识下, 解决方法就是非实时. 在某地将所有排名暂存起来, 然后隔一段时间刷新一下. 平常就直接都这个之前暂存的排名.
如果要实时该如何做?
设想是:
首先 ORDER BY 排列, 一行一行进行匹配.
设置一个临时变量 @user_rank = 0
检查当前 user_id 是否是我们想要的, 如果不是, 则临时变量自增 1, 如果是, 则返回
只返回一个值, 计算前几名的时候性能佳.
但我不懂 MySQL, 不知道具体该怎么实现. 求教.