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

Få nuværende rang ved hjælp af mysql

Du kan gøre dette med en underforespørgsel:

select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)

Dette gør ikke helt det samme. Dette vil lave en rigtig rangering, hvor brugere med samme værdi af ammopacks vil have samme rang. Originalen ville give forskellige brugere forskellige sekventielle værdier i dette tilfælde.

For at få denne effekt kan du gøre:

select count(*) as rank
from users u
where u.ammopacks > (select ammopacks from users u2 where u2.id = x) or
      (u.ammopacks = (select ammopacks from users u2 where u2.id = x) and
       u.id <= x
      )



  1. WARN SqlExceptionHelper:143 - SQL-fejl:0, SQLState:08S01- SqlExceptionHelper:144 - Kommunikationsforbindelsesfejl

  2. Påvirker AWS RDS-kryptering med KMS ydeevnen?

  3. Flet to partitioner til én i SQL Server (T-SQL)

  4. SQL WHERE.. IN klausul flere kolonner