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
SkytAsul
SkytAsul2y ago
Et d'ailleurs, est-il possible de faire l'opération inverse ? À partir d'un id de joueur, obtenir son "rang" ?
Unknown User
Unknown User2y ago
Message Not Public
Sign In & Join Server To View
SkytAsul
SkytAsul2y ago
ça c'est pour ma deuxième question non ?
Unknown User
Unknown User2y ago
Message Not Public
Sign In & Join Server To View
SkytAsul
SkytAsul2y ago
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
Want results from more Discord servers?
Add your server