SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 19.05.2012 11:54:24

xtoto
Участник
Зарегистрирован: 19.05.2012
Сообщений: 2

выборка четырех соседних строк

Всем привет
признаюсь сразу я - мускулистый чаник именно по этому пришел сюда
поставили передо мной задачу, которую я пока не смог решить и в связи с этим решил обратиться к спецам за помощь

исходные данные
сайт продажи/покупки авто
задача
на странице с выводом информаци о машине должны показываться похожие объявления
в данном случае похожие означает: выводятся 2 машины  с ценой ниже выбранной и 2 машины с ценой выше выбранной
причем у них еще должен совпадать тип (т.е. легковые машы либо грузовики, либо автобусы )

id - номер объявления
atype - как раз этот тип (от 1 до 7 )
price - цена
active - объявление активно или нет (1 или 0 )

ход моих размышлений
из базы выбираем  все активные объявления и сортируем по цене, причем тип выбранных авто должен совпадать

SELECT * FROM a_messages WHERE active=1  AND atype= 1 ORDER BY price DESC ;
а потом среди этих данных надо найти номер текущего объявления (id) и выбрать 2 выше ценой и 2 ниже ценой

подскажите пожалуйста как это правильно сделать

Неактивен

 

#2 19.05.2012 20:32:35

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: выборка четырех соседних строк

Пусть _ID_, - id выбранного объявление.
Получим его цену:
SELECT price FROM messages WHERE id=_ID_
_PRICE_ пусть будет его цена.

Две машины чуть подороже -
SELECT * FROM messages WHERE price>_PRICE_ AND  active = 1 AND atype = 1 ORDER BY _PRICE_ ASC LIMIT 2;
Две машины чуть подешевле -
SELECT * FROM messages WHERE price<_PRICE_ AND  active = 1 AND atype = 1 ORDER BY _PRICE_ DESC LIMIT 2;

На полях id и price имеет смысл поставить индексы (если id primary key, то индекс по id не нужен, поскольку первичный ключ всегда содержит в себе уникальный индекс).


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 21.05.2012 23:52:57

xtoto
Участник
Зарегистрирован: 19.05.2012
Сообщений: 2

Re: выборка четырех соседних строк

deadka, спасибо большое все получилось
глядишь с Вашей помошью чемунибудь научусь

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson