Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Предыдущий и слудующий ИД 
:(
    Опции темы
Sunvas
Дата 24.1.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

Репутация: 2
Всего: 89



Есть БД с ключевым автоинкрементным полем ID. Как, имея на руках ид определенной строки, за минимальное число запросов вытащить ид предыдущей и следущей строки?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
source777
Дата 24.1.2008, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

SELECT id FROM blog WHERE id<5 ORDER BY id DESC LIMIT 1;
SELECT id FROM blog WHERE id>5 ORDER BY id LIMIT 1;



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Sunvas
Дата 24.1.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

Репутация: 2
Всего: 89



source777, ответ неверный т.к. ИДЫ могут пропускаться ввиду удаления некоторых строк.


Цитата(GeneralElectric @  24.1.2008,  21:39 Найти цитируемый пост)
Подпись вызывает когнитивный диссонанс

Это мешает помочь?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
skyboy
Дата 24.1.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Sunvas @  24.1.2008,  21:30 Найти цитируемый пост)
source777, ответ неверный т.к. ИДЫ могут пропускаться ввиду удаления некоторых строк.

интересно, а как "удаление строк" помешает отсортировать строки в выборке по "ИД"?
PM MAIL   Вверх
Sunvas
Дата 25.1.2008, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

Репутация: 2
Всего: 89



Тоже верно.. А можно как-то сделать одним запросом?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
SelenIT
Дата 25.1.2008, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 9
Всего: 401



Теоретически можно, но это будет извратно и скорее всего медленнее, чем 2 запроса от source777...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
source777
Дата 25.1.2008, 21:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Sunvas @  24.1.2008,  22:30 Найти цитируемый пост)
source777, ответ неверный т.к. ИДЫ могут пропускаться ввиду удаления некоторых строк.
Мда, когнитивный диссонанс вызывает не только подпись... Если бы пропуски id не учитывались, то было бы просто 4 и 6 без всяких запросов, ясно?

Цитата(Sunvas @  25.1.2008,  00:05 Найти цитируемый пост)
А можно как-то сделать одним запросом?

Код

SELECT (SELECT id FROM blog WHERE id<5 ORDER BY id DESC LIMIT 1) as prev, (SELECT id FROM blog WHERE id>5 ORDER BY id LIMIT 1) as next;



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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