Il y a quelques mois, j'ai posé une question sur un sujet similaire, j'ai reçu de l'aide et je pensais avoir la réponse. Trois mois plus tard, je constate que cela n'a pas fonctionné à 100 % et que j'ai besoin d'une aide supplémentaire, mais je peux mieux poser la question maintenant que je comprends mieux.
J'ai une table mysql avec id, userid, rounds, reps, exerciseid
J'ai besoin de tirer une série d'utilisateurs les plus hauts spécifiques à l'exercice pour lequel je tire. Ainsi, si le exerciseid
était 8, j'aurais besoin de la ronde supérieure des utilisateurs pour ça. exerciseid
mais si l'utilisateur a le même rounds
plus d'une fois, ce qui arrive souvent, alors je dois trier cela par le reps
pour me donner une véritable performance maximale. Maintenant, après avoir obtenu ces résultats, je dois trier cet ensemble de données par rounds
, reps
donc si plusieurs utilisateurs uniques ont le même rounds
qui est ensuite ordonné par reps
.
Est-ce que cela peut être fait avec mysql ou est-ce que je dois plutôt extraire les données et les trier avec PHP ?
SELECT
max(l.rounds) as rounds,
l.reps,l.userid
from leaderboard l
where l.exerciseid = 8
group by l.userid
order by
rounds desc,
reps desc
exemple de structure Tout d'abord, il s'agit d'un ensemble simple
userid exerciseid rounds reps
-- -- --
1 8 23 10
1 8 23 15
1 8 20 10
2 8 28 19
2 8 15 12
3 8 40 29
results I want
userid exerciseid rounds reps
-- -- --
3 8 40 29
2 8 28 19
1 8 23 15