![]() |
|
Модераторы: skyboy |
![]()
|
|
| fastersin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
Здравствуйте, помогите найти оптимальное решение.
есть таблица Name Id name type 1 vasya 1 2 petya 1 3 kolya 2 4 yura 1 5 dima 3 6 oleg 3 7 stas 3 Запрос select * from `name` where `type` in (1,3) order by `id` даст результат Id name type 1 vasya 1 2 petya 1 4 yura 1 5 dima 3 6 oleg 3 7 stas 3 Далее я перехожу на страницу c id = 5 Где вывожу все данные строчки с id = 5 Имя – dima Тип – 3 А в низу нужно вывести ссылки на предыдущую и следующую запись <- назад вперед -> Но для этого мне нужно узнать их id Подскажите как зная текущий id (в данном примере он равен 5) и условие выборки (в данном примере where `type` in (1,3)) составить SQL запрос чтобы получить соседние id (в данном примере предыдущий id = 4 а следующий за текущим id = 6) |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
начало по вкусу Добавлено @ 15:05 Это для предыдущего id, для следующего id запрос будет почти такой же, но в другом направлении и сравнения и сортировки Это сообщение отредактировал(а) Fortop - 17.3.2012, 15:05 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| fastersin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
спасибо за ответ.
после того как запостил вопрос и уехал, сразу же понял решение и понял какую чушь сморозил решение очень простое select * from `name` where id < 5 and `type` in (1,3) order by `id` limit 1 // предидущий id select * from `name` where id > 5 and `type` in (1,3) order by `id` limit 1 // следующий id
подскажите, а зачем направление сортировки менять? у меня и выше приведенный код отработал верно. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 2 Всего: 42 |
Предыдущий у вас будет максимальный id из тех кто меньше. А следующий это будет минимальны id из тех кто больше. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |