基于标记和时间的每个学生的唯一等级| Mysql | RDBMS

时间:2014-05-31 08:26:50

标签: php mysql sql rdbms

我正在尝试使用PHP& amp;创建一个在线测试应用程序。 Mysql的。我的mysql表students将具有以下结构:

 | id | username | marks | time | rank |

我想根据每个学生的分数和时间,较高的分数和较低的时间来影响每个学生的独特排名。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

首先,您不应该将排名存储到表中,因为它是每次添加新行时可能会更改的计算值。然后,如果你想获得每个学生的排名,你可以这样做:

select 
  students.*, 
  (@rank := @rank+1) AS rank 
from students 
inner join (select @rank := 0) as a 
order by mark desc, time asc;

示例:SQLFiddle