sql >> Databasteknik >  >> RDS >> Mysql

Få aktuell rankning med mysql

Du kan göra detta med en underfråga:

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

Det här gör inte exakt samma sak. Detta kommer att göra en riktig rankning, där användare med samma värde på ammopacks kommer att ha samma rang. Originalet skulle ge olika användare olika sekventiella värden i detta fall.

För att få den här effekten kan du göra:

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. Fråga nästa tidsintervall

  2. Många-till-många relation INFOGA

  3. hur använder man en like med en join i sql?

  4. Hur man programmatiskt skapar en ODBC-länkad tabell till en SQL Server View och får den att vara redigerbar?