我有一个保存学生成绩的数据库,我记录了个人成绩和总成绩。问题在于计算学生排名。
样品表:
答案 0 :(得分:0)
您的问题并没有明确定义您的问题,甚至都没有共享任何代码。我了解的是您在数据库中拥有所有学生,并且默认情况下他们的位置为“ nil”。并且您想要根据总分在记录中添加位置。
我将为您提供可以做什么的高级想法。选择按总分数升序排列的所有学生。遍历所有对象,并使用迭代编号更新记录。
答案 1 :(得分:0)
如果您不在乎相等的总数,则可以通过执行类似以下操作来获得学生排名,而无需使用更新:
SELECT student_name, total, @rownum := @rownum + 1 as position from tbl_web_users cross join (select @rownum := 0) as t order by total desc