MySQL是广泛应用于数据库管理系统的关系型数据库系统。在数据库中,我们经常需要取出一段成绩排名区间。下面介绍如何使用MySQL查询成绩排名区间。
--by www.qzphp.cn SELECT * FROM ( SELECT s.id, s.name, s.score, CASE WHEN @cur_score=s.score THEN @cur_rank WHEN @cur_score:=s.score THEN @cur_rank:=@cur_rank+1 END AS rank FROM score AS s, (SELECT @cur_rank:=0, @cur_score:=NULL) r ORDER BY s.score DESC ) tmp WHERE rank BETWEEN 2 AND 5;
该查询语句首先将score表中的成绩按降序排列,并使用CASE语句计算排名。将排名的结果保存在rank列中。最后,使用BETWEEN运算符选择rank在2到5之间的行,并返回结果。