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

Ottieni il grado attuale usando mysql

Puoi farlo con una sottoquery:

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

Questo non fa esattamente la stessa cosa. Questo farà una vera e propria classifica, dove gli utenti con lo stesso valore di ammopacks avrà lo stesso grado. L'originale darebbe a utenti diversi valori sequenziali diversi in questo caso.

Per ottenere questo effetto, puoi fare:

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
      )