Как я могу получить позицию поля? (MYSQL) - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь получить позицию значения для таблицы лидеров ...

мой стол в настоящее время выглядит так:

image

Что я хочу сделать это:

Sort table highest to lowest (xp) (where serverid = "")

Get the position of A user on it (id) 

and apply it to a value (e.g position = rows[0].positon) for use in node.js

например?

Positon | id | Serverid | xp
1        user1  server1  1221
3        user2  server1  32
2        user3  server1  321
4        user4  server1  19

но я понятия не имею, как это сделать, если кто-то может дать мне указатель в то, что мне нужно изучить, это то, что мне нужно.

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете использовать rank():

select t.*
from (select t.*, rank() over (partition by serverid order by xp) as rnk
      from t
      where serverid = ?
     ) t
where id = ?;

Или вы можете сделать это без оконных функций:

select count(*) + 1
from t
where t.serverid= ?
      t.xp > (select t.xp
              from t t2
              where t2.serverid = t.serverid and
                    t2.id = ?
             );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...