sql >> Base de Datos >  >> RDS >> Mysql

Obtenga el rango actual usando mysql

Puede hacer esto con una subconsulta:

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

Esto no hace exactamente lo mismo. Esto hará una clasificación real, donde los usuarios con el mismo valor de ammopacks tendrá el mismo rango. El original le daría a diferentes usuarios diferentes valores secuenciales en este caso.

Para conseguir este efecto, puedes hacer:

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
      )