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% правильно можно добавить <= вместо < и вбить в условие дату
- 
				Огромное спасибо! Попробую...