sql >> Databasteknik >  >> RDS >> Mysql

Högpoängsystem från mitt iphone-spel

Så här frågar du databasen efter rankningen för spelarens udid 1 :

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

Jag antar att en högre poäng är bättre och att du bara lagrar den högsta poängen för varje spelare.

Med ett index på score och udid , det här borde gå ganska snabbt.

Vad frågan gör är att räkna antalet användare som har högre poäng än den valda användaren.

Om ett lägre betyg är bättre, ändra det helt enkelt till detta:

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

Vilket räknar antalet spelare med lägre poäng.

Läs allt om MySQL-index .



  1. Mysql uppdaterar en rad med ett annat radvärde i samma tabell

  2. JSON och ladda upp bilden till servern

  3. SQL Server Ändra TempDB-filplats

  4. SQL:Hur kan vi göra en tabell1 JOIN tabell2 PÅ en tabell som ges i ett fält i tabell1?