J'ai une requête qui positionne les étudiants en fonction de leurs moyennes, cette requête mysql fonctionne bien lors de l'interrogation des positions pour l'ensemble de la classe. Mais lorsque, par exemple, je veux un poste pour un étudiant en particulier, la requête classe celui-ci en position un, même dans la liste où l'étudiant ne se positionne pas.Liste correctement la position des marques d'étudiants dans la base de données
Ci-dessous la requête, lors d'une requête pour l'ensemble de la classe. Ici ça marche bien.
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
Mais lorsque la requête est comme ce
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
il se classera le nombre d'étudiants 1, même si l'étudiant est la position pas.
Comment puis-je modifier la requête de sorte que lorsque je interroge un étudiant, il montre la position qu'il/elle est dans la classe entière.