получить позицию каждой строки в запросе в другом столбце - PullRequest
1 голос
/ 04 сентября 2011

У меня есть таблица с двумя столбцами:

[идентификатор, оценка]

, и я хочу получить следующий результат

[позиция, идентификатор, оценка]

например для

id    score
1      7
2      3
3      19

Я хочу получить

pos    id    score
1      3      19
2      1      7
3      2      3

Как я могу это сделать?Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 04 сентября 2011

Ваш запрос может выглядеть примерно так:

select @rownum:=@rownum+1 ‘pos’, t.id, t.score from the_table t, (SELECT @rownum:=0) r order by score desc limit 10;

Редактировать
limit совершенно необязательно, кстати

0 голосов
/ 04 сентября 2011
set @pos=0;
select @pos:=@pos+1 as 'pos',id,score
from exampletb 
order by score desc;

чтобы получить позицию, которую вам нужно использовать @pos:=@pos+1, она будет увеличиваться по мере увеличения строк и будет возвращать позицию выбранной строки.

и order by score desc, чтобы получить самый большой элемент сверху.

и результат вышеупомянутого запроса как то, что вы хотели

pos    id    score
1      3      19
2      1      7
3      2      3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...