Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ SQL _ Выборка ближайших записей

Автор: Froex 16:04:2008, 07:45

Дано уникальное значение, по которому ищется запись, как выбрать не только эту запись, но и две предыдущие и две последующие?

Автор: sax_ol 16:04:2008, 07:54

Что есть предыдущие и последующие ?
Вы никак не поймете одну истину, номер, последовательность и т.д. может присутствовать только в конкретном запросе, и все, как только вы делаете другой, то вся эта катавасия "летит к чертям".

Ну к примеру
у вас есть запрос: select * from table where id=4, вам надо 2 предыдущие, а что это значит? а ровным счетом ничего, т.к.
если я напишу так: select * from table where id<4 order by id, вы получите одни результаты, а если select * from table where id<4 order by id desc то совсем другие, а если еще произошло удаление записи, то и результат непредсказуем.
Вот поэтому у записи нет номера, и понятия предыдущих, последующих - относительны. И каждый раз вы сами определяете, что это такое и что вам надо.

Так понятнее, почему вам отвечают, на первый взгяд, как кажется ерунду?

Автор: Froex 16:04:2008, 08:06

Я делаю запрос "SELECT * FROM mytable WHERE id<$id LIMIT 1,2" - в этом примере сначала найдется все, что имеет id<$id и относительно этого будет задействован LIMIT?

Автор: sax_ol 16:04:2008, 08:13

А что, трудно проверить? wink.gif

Автор: Froex 16:04:2008, 08:15

Спасибо большое, разобрался)))

+1

P.S. Проверить сейчас проблематично просто)))

Русская версия Invision Power Board (http://www.nulled.ws)
© Invision Power Services (http://www.nulled.ws)