我想通過學生的id選擇表中學生的排名。下面的代碼將有助於解釋我的問題。 表的名字是Student,它有id並且標記爲它的列。上述在mysql中通過id獲得排名
SELECT id, marks,
@curRank := IF(@prevVal=marks,@curRank,@studentNumber) AS rank,
@studentNumber := @studentNumber + 1 as studentNumber,
@prevVal:=marks
FROM Student,(SELECT @curRank :=0, @prevVal:=null, @studentNumber:=1) r
ORDER BY marks DESC where id='001';
的代碼能夠選擇學生的ID和其級別的所有列表沒有where id='001'
但我想選擇通過其ID每個學生的排名。 我已經嘗試了上面的代碼,以解決我的問題,但無濟於事,請能有人help.This是我的表看起來像當我執行上面的代碼,而無需where id='001'
id marks rank
002 92 1
003 92 1
001 80 3
我想選擇標記和的其中id = 001象下面
id marks rank
001 80 3
你能從'Student'表中顯示幾行,加上預期的輸出嗎? –
請讓我更新我的問題,希望這會有所幫助。謝謝 – George
只有在我看到的情況下,這隻能用臨時表格。您首先必須將等級列計算到臨時表中,然後選擇單個學生。縮小結果的地方將省略其他等級。 –