This question demande comment sélectionner le rang d'un utilisateur par son identifiant.Optimisation db: classement informatique
id name points
1 john 4635
3 tom 7364
4 bob 234
6 harry 9857
La réponse est acceptée
SELECT uo.*,
(
SELECT COUNT(*)
FROM users ui
WHERE (ui.points, ui.id) >= (uo.points, uo.id)
) AS rank
FROM users uo
WHERE id = @id
ce qui est logique. J'aimerais comprendre ce que seraient les compromis de performance entre cette approche ou en modifiant la structure db pour stocker un rang calculé (je suppose que cela nécessiterait des changements massifs chaque fois qu'il y a un changement de rang), ou toute autre approche que je Je suis trop nouveau pour y penser. Je suis un db noob.