下面是我的代码的副本,我的主要目标是根据其 photo_id 获取某些图像的排名。下面的代码工作得很好,但问题是,如果总分相同,那么这两个图像将获得相同的排名号。我真正想要的是,如果这些图像具有相同的总分,我想按日期对它们进行排名。我怎样才能做到这一点?
SELECT uo.*,
( SELECT COUNT(DISTINCT ui.total_points)
FROM photo_list ui
WHERE ui.total_points>= uo.total_points
) AS rank
FROM photo_list uo
WHERE photo_id = :photo_id
这是我的表格的样子:
id | photo_id | total_points | date
1 432cfc 0 1403076412
2 fsd324 1 1403076413
3 gd43ds 0 1403076411
这是我想要的结果:
rank | photo_id | total_points | date
1 fsd324 1 1403076413
2 gd43ds 0 1403076411
3 432cfc 0 1403076412
最佳答案
select * from (
SELECT uo.*,
(SELECT COUNT(DISTINCT ui.total_points)
FROM photo_list ui
WHERE ui.total_points>= uo.total_points
) AS rank
FROM photo_list uo
WHERE photo_id = :photo_id
) as alias
order by total_points,date;
关于php - 排名不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27978110/