Автор Тема: Определение порядкового номера MySQL  (Прочитано 4612 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
MySQL

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

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

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

Можно ли каким-нть запросом сразу получить порядок, например, для Лены?
Космическая игрушка

Оффлайн WebZ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
    • http://webz.ru
Определение порядкового номера MySQL
« Ответ #1 : 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% правильно можно добавить <= вместо < и вбить в условие дату
WebZ.Ru - разработка сайтов.
Мы за Perl.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Определение порядкового номера MySQL
« Ответ #2 : 27 Ноября 2007, 09:45:06 »
Огромное спасибо! Попробую...
Космическая игрушка

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28