Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Obter classificação atual usando mysql


Você pode fazer isso com uma subconsulta:
select count(*) as rank
from users u
where u.ammopacks >= (select ammopacks from users u2 where u2.id = x)

Isso não faz exatamente a mesma coisa. Isso fará um ranking real, onde usuários com o mesmo valor de ammopacks terá a mesma classificação. O original daria a diferentes usuários valores sequenciais diferentes neste caso.

Para obter esse efeito, você pode fazer:
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
      )