溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Mysql中利用排序獲取排名

發(fā)布時(shí)間:2021-02-18 16:02:37 來源:億速云 閱讀:569 作者:Leah 欄目:MySQL數(shù)據(jù)庫

這篇文章將為大家詳細(xì)講解有關(guān)怎么在Mysql中利用排序獲取排名,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

代碼如下所示:

SELECT @i:=@i+1 rowNum,
if(@total=t.s_score,@rank,@rank:=@i) rank,@total:=t.s_score,
t.*
from(
select t1.* ,t2.s_score from student t1 LEFT JOIN score t2 on t1.s_id=t2.s_id and t2.c_id="01" ORDER BY t2.s_score desc
)t,(select @i:=0,@rank:=0,@total:=null) s ;
SELECT @i:=@i+1 rowNum,
if(@total=t.s_score,@rank,@rank:=@rank+1) rank,@total:=t.s_score,
t.*
from(
select t1.* ,t2.s_score from student t1 LEFT JOIN score t2 on t1.s_id=t2.s_id and t2.c_id="01" ORDER BY t2.s_score desc
)t,(select @i:=0,@rank:=0,@total:=null) s ;

Mysql 獲取成績排序后的名次

其實(shí)就是輸出mysql的排序后的行號

RT:獲取單個(gè)用戶的成績在所有用戶成績中的排名

可以分兩步:

1、查出所有用戶和他們的成績排名

select id,maxScore,(@rowNum:=@rowNum+1) as rowNo 
from t_user, 
(select (@rowNum :=0) ) b 
order by t_user.maxScore desc

2、查出某個(gè)用戶在所有用戶成績中的排名

select u.rowNo from ( 
select id,(@rowNum:=@rowNum+1) as rowNo 
from t_user, 
(select (@rowNum :=0) ) b 
order by t_user.maxScore desc ) u where u.id="2015091810371700001";

關(guān)于怎么在Mysql中利用排序獲取排名就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI