+ -
当前位置:首页 → 问答吧 → 关于获取会员排名的计算方法

关于获取会员排名的计算方法

时间:2011-07-21

来源:互联网

例如我有会员表(User),每个会员有自己的积分字段(point),现在要获取一个会员ID=8100的会员排名,
我的办法是先先查询所有会员:

  1. $user_array= "select id from User order by point desc"
  2. foreach($user_array as $key=>$user){
  3.      if($user['id']==8100){
  4.            return $key+1;
  5.            break;
  6.      }
  7. }
复制代码


大家觉得这么设计合理吗?


作者: Hmily   发布时间: 2011-07-21

我这样是试了一下,如果有3万个会员,查询速度就在2秒左右了,有点慢。

作者: Hmily   发布时间: 2011-07-21

先取改会员分数,然后取大于该分数的人的总数,即排名。

作者: kawais   发布时间: 2011-07-21

一想到取所有数据出来得出仅需的一点点数据,就得想过另外的方法了,

先取改会员分数,然后取大于该分数的人的总数,即排名。
kawais 发表于 2011-7-21 12:16

作者: 51nosql   发布时间: 2011-07-21

谢谢,我试试~

作者: Hmily   发布时间: 2011-07-21