Forum Webscript.Ru

Общие => Базы данных => Тема начата: Error202 от 26 Ноября 2007, 16:59:00

Название: Определение порядкового номера MySQL
Отправлено: Error202 от 26 Ноября 2007, 16:59:00
MySQL

В таблице около 1000 записей
у каждой есть поле rate
В нем указан рейтинг...
Цифры в нем не уникальны...

Делаю запрос SELECT * FROM table ORDER BY rate DESC
Получаю все записи в нужном порядке

Например (по порядку) порядок, name, rate
...
501 Вася 108
502 Катя 107
503 Лена 107
504 Женя 106
...

Можно ли каким-нть запросом сразу получить порядок, например, для Лены?
Название: Определение порядкового номера MySQL
Отправлено: WebZ от 26 Ноября 2007, 19:36:26
Вот так:
SELECT rate FROM table WHERE rate WHERE name=\'Лена\'
затем
SELECT count(*)+1 as poryadok FROM table WHERE rate > $rate_лены
это пример в два запроса. можно сделать и одним, но два эти по-моему будут работать быстрее

одним это так:

SELECT count(*)+1 as poryadok FROM table as t1,table as t2 WHERE t1.name=\'Лена\' AND t1.rate
Теперь поясняю: мы делаем подсчет всех, у кого рейтинг больше, получаем число. прибавляем единицу и получаем позицию нужного человека.
На случай совпадения числа рейтинга чтобы позиция определялась на 100% правильно можно добавить <= вместо < и вбить в условие дату
Название: Определение порядкового номера MySQL
Отправлено: Error202 от 27 Ноября 2007, 09:45:06
Огромное спасибо! Попробую...