Forum Webscript.Ru
Общие => Базы данных => Тема начата: 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
...
Можно ли каким-нть запросом сразу получить порядок, например, для Лены?
-
Вот так:
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% правильно можно добавить <= вместо < и вбить в условие дату
-
Огромное спасибо! Попробую...