私は、学生の平均に基づいて学生を配置するクエリを持っています。このmysqlクエリは、クラス全体の位置をクエリするときにうまく機能します。しかし、たとえば、特定の生徒のためのポジションが必要な場合、リスト内に位置していなくても、クエリーはその生徒のポジション1をランク付けします。データベース内の学生マークの位置を正しくリストします
以下は、クラス全体をクエリするときのクエリです。ここでうまくいく。
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位でない場合でも、学生番号1をランク付けします。
私は学生に質問するときに、彼/彼女がクラス全体にいる位置を表示するようにクエリを変更する方法を教えてください。