1
Базы данных / Определение порядкового номера MySQL
« : 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% правильно можно добавить <= вместо < и вбить в условие дату
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% правильно можно добавить <= вместо < и вбить в условие дату