SQL select par l'index dans une requête ordonnée
Hello, je sèche sur ce problème donc je pose ici.
J'ai une table avec des données associant (entre autre) un ID de joueur à un nombre de point. La table est grosse.
Avec une requête composée de ORDER BY DESC et LIMIT, j'obtiens la liste des 10 joueurs avec le plus de points. Ça c'est facile.
Maintenant, je souhaite obtenir le (par exemple) 137e joueur avec le plus de point.
Pour l'instant ce que je vois comme solution c'est un
SELECT id, points FROM players ORDER BY points DESC LIMIT 137
et dans mon ResultSet je prend le tout dernier. Problème, je pense que ce n'est pas du tout efficace, parce que ici je récupère 136 lignes inutiles, donc ça fait du traffic pour rien.
Y a-t-til une meilleure solution?5 Replies
Et d'ailleurs, est-il possible de faire l'opération inverse ? À partir d'un id de joueur, obtenir son "rang" ?
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
ça c'est pour ma deuxième question non ?
Unknown User•2y ago
Message Not Public
Sign In & Join Server To View
pas de soucis
merci bien, je vais tester
pour la 1re question j'ai trouvé
LIMIT 1 OFFSET 137
qui est une syntaxe propre à PostgreSQL et MySQL qui fait le taff