Voici comment interroger la base de données pour le rang du joueur udid 1
:
SELECT COUNT(*) AS rank
FROM tablename
WHERE score > (SELECT score FROM tablename WHERE udid = 1)
Je suppose qu'un score plus élevé est meilleur et que vous ne stockez que le score le plus élevé pour chaque joueur.
Avec un index sur score
et udid
, cela devrait être assez rapide.
La requête compte le nombre d'utilisateurs qui ont un score supérieur à celui de l'utilisateur sélectionné.
Si un score inférieur est meilleur, remplacez-le simplement par ceci :
SELECT COUNT(*) AS rank
FROM tablename
WHERE score < (SELECT score FROM tablename WHERE udid = 1)
Qui compte le nombre de joueurs avec un score inférieur.
Lisez tout sur index MySQL .