php - 排名不重复

标签 php mysql point

下面是我的代码的副本,我的主要目标是根据其 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/

相关文章:

php - 如何在服务器中执行 MQL4 程序?

delphi - 无效的浮点运算

opengl - 使用 GPU 查询点 epsilon-接近点云中的剖切面

Java & MySQL 可以有调试日志吗?

mysql - 编写多个mysql脚本

android - 如何在不使用主键时进行插入或替换

java - 数组点的构造函数

php - 从 API 调用中提取的内容给出 0 值

php - 迭代菜单的多维数组

php - MySQL、PHP;检测 dateTimePicker 日期是否已被使用并禁用它