|
|
|
| Доброе время суток, форумчане.
Собственно, пытаюсь получить порядковый номер при сортировки полей. Нашел такой вот простой рабочий пример, но проблема состоит в том, что значение active бывает одинаковые, и в таком случае номер позиции также совпадает. Подскажите пожалуйста как увеличить значение следующего элемента на 1, при совпадении значения поля active?
SELECT COUNT(*) FROM players WHERE active > (SELECT active FROM players WHERE id = ?)
|
| |
|
|
|
|
|
|
|
для: Jeick9
(15.01.2016 в 00:27)
| | не совсем понятен вопрос
покажите дамп таблицы (несколько строк) и желаемый результат | |
|
|
|
|
|
|
|
для: Valick
(15.01.2016 в 09:24)
| | Допустим таблица БД содержит такие записи:
active | players | rank
2 | Max | 0
8 | Alex | 0
5 | Bob | 0
8 | Nik | 0
1 | Rex | 0
----------------------------------
Мне нужно отсортировать записи по убыванию active и присвоить колонке rank номер позиции. То есть:
active | players | rank
8 | Alex | 1
8 | Nik | 2
5 | Bob | 3
2 | Max | 4
1 | Rex | 5
----------------------------------
Но, проблема в том, что Alex и Nik полям rank присваивается значение 1. | |
|
|
|
|
|
|
|
для: Jeick9
(15.01.2016 в 11:44)
| | зачем их нумеровать( это разовая операция или надо постоянно перенумеровывать в зависимости от сортировки), обычно это делается на этапе вывода, как вы собираетесь использовать rank? | |
|
|
|
|
|
|
|
для: Valick
(15.01.2016 в 12:06)
| | Это разовая операция (запуская скрипт один раз в сутки). Мне просто нужно вывести номер позиции юзера в рейтинге. | |
|
|
|
|
|
|
|
для: Jeick9
(15.01.2016 в 12:39)
| | Так если рейтинг у юзеров одинаковый, почему ж вы пытаетесь одного из них ущемить более, чем другого? | |
|
|
|