获取图像排名

时间:2015-01-15 23:49:24

标签: php mysql sql rank

我使用下面的代码从我的表中获取图像排名。到目前为止一切都很好,但问题是,如果2个或更多的图像有相似的点,他们得到相似的排名。我想要的是如果2张图像有相似的点,我想根据提交的图像的日期对它们进行排名。

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

这是我的表格的样子

id  | photo_id | total_points
1      432cfc        1
2      fsd324       123
3      gd43ds        5

1 个答案:

答案 0 :(得分:1)

您可以为比较添加更多条件:

SELECT  uo.*, 
        (SELECT COUNT(*)
         FROM    photo_list ui
         WHERE   ui.total_points > uo.total_points OR
                 ui.total_points = uo.total_points AND ui.submitted_date  >= uo.submitted_date
        ) AS rank
FROM    photo_list uo

我不确定您希望在提交日期排名的顺序,但>=<=应该有效。请注意,我还更改了COUNT()。如果要包含数据的其他功能,那么只计算提交的点数是没有意义的。