sql >> Database teknologi >  >> RDS >> Mysql

Høj score system fra min iphone spil

Her er, hvordan du forespørger databasen for rang for spiller udid 1 :

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

Jeg går ud fra, at en højere score er bedre, og at du kun gemmer den højeste score for hver spiller.

Med et indeks på score og udid , det burde være ret hurtigt.

Hvad forespørgslen gør, er at tælle antallet af brugere, der har en højere score end den valgte bruger.

Hvis en lavere score er bedre, skal du blot ændre den til dette:

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

Hvilket tæller antallet af spillere med en lavere score.

Læs alt om MySQL-indekser .



  1. en artikel om flere kategorier

  2. Tre bord joins med andre joins end INNER JOIN

  3. Sådan aktiveres logning for SQL-sætninger, når du bruger JDBC

  4. Forespørger du på en streng fra int kolonne?