CREATE VIEW с номером строки

Дата публикации: Август 17, 2011 - 12:49:22, ср

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

Данные: таблица с фотографиями, поля (для примера):

  • id – фотографии.
  • votes – количество голосов за фотографию.
  • status – проверено модератором (1 – да).
  1. CREATE VIEW site_rating AS SELECT id, votes, (
  2.   SELECT count( * )
  3.   FROM site_posters sp
  4.   WHERE sp.status =1
  5.   AND (
  6.    sp.votes > p.votes
  7.    OR (
  8.      sp.votes = p.votes
  9.      AND sp.id > p.id
  10.    )
  11.   )
  12. ) + 1 AS pos
  13. FROM `site_posters` AS p
  14. ORDER BY votes DESC , id DESC
  15. LIMIT 0 , 30

Результат:

Теги: mysql
Просмотров: 297

Комментарии

Wet
Сентябрь 28, 2011 - 13:33:37, ср
Как выяснилось позже, такой способ оказался не приемлемым. При большом количестве голосов образуются зависшие запросы, которые сильно грузят сервер. Поэтому решено было вызывать этот запрос исключительно по необходимости.

Что скажете?

Имя:
Код Код с картинки: