Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Highscore-System aus meinem iPhone-Spiel

So fragen Sie die Datenbank nach dem Rang des Spielers udid 1 ab :

SELECT COUNT(*) AS rank
FROM tablename
WHERE score > (SELECT score FROM tablename WHERE udid = 1)

Ich gehe davon aus, dass eine höhere Punktzahl besser ist und Sie nur die höchste Punktzahl für jeden Spieler speichern.

Mit einem Index auf score und udid , das sollte ziemlich schnell gehen.

Die Abfrage zählt die Anzahl der Benutzer, die eine höhere Punktzahl als der ausgewählte Benutzer haben.

Wenn eine niedrigere Punktzahl besser ist, ändern Sie sie einfach wie folgt:

SELECT COUNT(*) AS rank
FROM tablename
WHERE score < (SELECT score FROM tablename WHERE udid = 1)

Welche zählt die Anzahl der Spieler mit einer niedrigeren Punktzahl.

Lesen Sie alles über MySQL-Indizes .