Найти rownum из набора результатов MySQL для ранжирования - PullRequest
0 голосов
/ 15 декабря 2010

У меня есть таблица, в которой хранятся результаты, полученные от пользователей моей игры. Я хочу, чтобы, если это возможно, я мог найти их рейтинг, используя только mySQL (потому что, если количество игроков увеличивается экспоненциально, время цикла php анализируется полностью)база данных значительно увеличится).

До сих пор мне удавалось получить это утверждение

select @rownum:=@rownum+1 'rank', s.* from top100 s, (select @rownum:=0) r order by score desc 

, чтобы вернуть набор результатов с примененным ранжированием - то, что мне тогда нужно было сделать, этонайдите в нем один элемент, используя подзапрос, чтобы найти игроков, последний insert_id из предыдущей вставки.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 15 декабря 2010
SELECT t.*,
       (SELECT COUNT(*)
          FROM top100 t2
         WHERE t2.score > t.score) AS rank
  FROM top100 t
 WHERE id = LAST_INSERT_ID()
...