1
我有一個查詢根據他們的平均數定位學生,這個mysql查詢在查詢整個班級的位置時工作得很好。但是,例如,當我想爲某個特定學生提供某個職位時,即使列表中的學生未處於位置,該查詢也會對該職位排名。正確列出數據庫中學生分數的位置
查詢整個班級時,下面是查詢。這裏效果很好。
SELECT (@rownum := @rownum + 1) AS rank, student_id,
student_name,term_1_avg
FROM `students` a CROSS JOIN
(SELECT @rownum := 0) params
WHERE class = 2
ORDER BY term_1_avg DESC
但是,當查詢是這樣
SELECT (@rownum := @rownum + 1) AS rank, student_id,
student_name,term_1_avg
FROM `students` a CROSS JOIN
(SELECT @rownum := 0) params
WHERE class = 2 and student_id=2013494
ORDER BY term_1_avg DESC
它的排名將學號1,即使該學生沒有位置的一個。
如何更改查詢,以便在查詢學生時顯示他/她在整個班級中的位置。