MySQL是廣泛應用于數(shù)據(jù)庫管理系統(tǒng)的關系型數(shù)據(jù)庫系統(tǒng)。在數(shù)據(jù)庫中,我們經(jīng)常需要取出一段成績排名區(qū)間。下面介紹如何使用MySQL查詢成績排名區(qū)間。
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之間的行,并返回結果。