Mysql запрос, выберите из определенной точки на - PullRequest
1 голос
/ 02 июля 2011

У меня есть таблица с рейтингами игроков, и я хочу рассказать игроку, кто из 5 игроков выше него.Как мне сделать такой запрос?

Вот таблица:

CREATE TABLE IF NOT EXISTS `ladder_rankings` (
  `player_id` int(11) NOT NULL,
  `ladder_points` int(11) NOT NULL,
  KEY `player_id` (`player_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Итак, что-то вроде:

SELECT *
FROM ladder_rankings
WHERE ladder_points >10
ORDER BY ladder_points DESC
LIMIT 5 

Проблема в том, что покажет верхигроки, а не те, кто выше меня напрямую.Воображая, у меня есть 10 очков.Поэтому, если я нахожусь в позиции 230, я хочу, чтобы парни были на 225, 226, 227, 228 и 229.

Ответы [ 3 ]

1 голос
/ 02 июля 2011

Я думаю, просто измените DESC на ASC

1 голос
/ 02 июля 2011

Удалите DESC из вашего запроса, и вы получите их

SELECT * FROM (SELECT *
FROM ladder_rankings
WHERE ladder_points >10
ORDER BY ladder_points 
LIMIT 5) ORDER BY ladder_points DESC

Оберните это в другой SELECT, чтобы получить результаты в нужном порядке

0 голосов
/ 02 июля 2011

Джоан, Вы можете сделать запрос как:

SELECT * 
    FROM (SELECT *
          FROM ladder_rankings
          WHERE ladder_points > (SELECT ladder_points 
                            FROM ladder_rankings 
                            WHERE player_id = %current_player%)
          ORDER BY ladder_points ASC
          LIMIT 5) as NEXT_5
 ORDER BY ladder_points DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...