Повелители досок
ежить
дневник заведен 20-03-2002
постоянные читатели [13]
AleXX, Barabashka, DeadMorozz, Le ciel de Moscou, Leonid_Dickman, Mikki Okkolo, Nau, Nessy, superbabka, the_ absentee, WhereItFrom-Club, Джей, ТАРЗАНКА
закладки:
цитатник:
дневник:
местожительство:
Россия, Санкт-Петербург
интересы [3]
04-06-2008 12:03 утреннее
для интересующихся
надо думаю поделиться, а то потом забуду, а находка по-моему любопытная.
Друг в аське спросил совета по SQL:
-------------
д: привет, не знаешь ли ты как в mysql пронумеровать результаты запроса?

я: а зачем? тут народ говорит, что это логичней в скрипте делать

д: да просто есть таблица с баллами пользователей, надо строить по ним рейтинги, соотв. вычислять позицию пользователя в рейтинге
... как узнать номер места польователя, чтобы сказать пользователю, что вы занимаете 5 позицию
--------------

т.е. задачка интересная - конечно, можно вывести все результаты с сортировкой, и потом в цикле считать место - но это просто тупо. Несколько более элегантно - динамическая таблица на основе запроса с сортировкой, с доп. столбцом-индексом.

Но решение, найденное мозговым штурмом, оказалось совсем простым: делаем select count тех записей, у которых "баллы" меньше (или больше, смотря как рейтинг строится), нужного нам юзера - так и получаем его место в рейтинге. все укладывается в 2 простых или 1 составной запрос!
Закрыть