1.排名可重复
SELECT @rownum:=@rownum+1AS rownum,if(@total=total,@rank,@rank:=@rownum)as rank,@total:=total,A.name
FROM(SELECTSUM(score)AS total,nameFROM student_infoGROUPBY nameORDERBY totalDESC)A,(SELECT @rank:=0,@rownum:=0,@total:=null)B
2.排名不重复
select name,@rank:=+@rank as rank from student_info a,(select @rank:=0)b order by score desc