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