积分排名系统

时间:2015-01-16 02:39:08

标签: php mysql sql ranking

下面是我必须检索某些图像的等级的代码,一切都很好。但是,如果两个或多个图像具有相同的总点数,我将获得重复的排名结果。我的主要目标是,如果两个或多个图像具有平局total_points,则根据提交这些图像的时间对它们进行排名。 (旧到最近的订单)。我该如何打破平局?

2 个答案:

答案 0 :(得分:0)

您可以使用变量按总降点和升序日期排名:

set @rank = 0;
select @rank := @rank + 1 as rank,
  photo_id,
  total_points,
  date
from photo_list
order by
  total_points desc,
  date asc

<强> SQL FIDDLE

答案 1 :(得分:0)

按总分数排序,然后按日期排序的简单查询怎么样?此查询将返回前十个结果:

SELECT `id`
     , `photo_id`
     , `total_points`
     , `date`
  FROM `photos
 ORDER
    BY `total_points` DESC,
       `date` ASC
 LIMIT 10
     ;