Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как Выбрать следующий элемент? 
:(
    Опции темы
Fubu_By
Дата 16.12.2009, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.2.2007

Репутация: нет
Всего: 0



есть таблица  с полями id, rating, date_add

надо отсортировать таблицу по рейтингу, потом по дате добавления и вытащить одно поле, которое будит идти после определённого id, допустим 3459, записей в таблице около 100тыс.

как это можно сделать?


--------------------
PM MAIL WWW   Вверх
Akina
Дата 16.12.2009, 08:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



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

Канва (идея) - до рабочего варианта доведёшь сам. Цепь подзапросов:
Берём нужную запись
Код

(
select *
from tab t1
where id = 3459
) q1

Берём запись с тем же rating и следующим date_add
Код

(
select *
from tab t2, q1
where t2.rating=q1.rating
and t2.date_add > q1.date_add
orde by t2.date_add asc
limit 1
) q2

Берём запись со следующим rating и минимальным date_add
Код

(
select *
from tab t3, q1
where t3.rating > q1.rating
order by t3.rating asc, t3.date_add asc
limit 1
) q3

Складываем полученные записи
Код

(
select *
from q2
union
select *
from q3
) q4

Берём одну из
Код

(
select *
from q4
order by q4.rating asc, q4.date_add asc
limit 1
)



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.