Veja como consultar o banco de dados para a classificação do jogador udid
1
:SELECT COUNT(*) AS rank
FROM tablename
WHERE score > (SELECT score FROM tablename WHERE udid = 1)
Estou assumindo que uma pontuação mais alta é melhor e você está armazenando apenas a pontuação mais alta para cada jogador.
Com um índice na
score
e udid
, isso deve ser bastante rápido. O que a consulta faz é contar o número de usuários que têm uma pontuação maior que a do usuário selecionado.
Se uma pontuação mais baixa for melhor, basta alterá-la para:
SELECT COUNT(*) AS rank
FROM tablename
WHERE score < (SELECT score FROM tablename WHERE udid = 1)
Que conta o número de jogadores com uma pontuação mais baixa.
Leia tudo sobre índices MySQL .