Как получить следующую / предыдущую запись в MySQL? - PullRequest
118 голосов
/ 19 сентября 2009

Допустим, у меня есть записи с идентификаторами 3, 4, 7, 9, и я хочу иметь возможность переходить от одного к другому с помощью навигации по следующим / предыдущим ссылкам. Проблема в том, что я не знаю, как получить запись с ближайшим более высоким ID.

Поэтому, когда у меня есть запись с идентификатором 4, мне нужно иметь возможность извлечь следующую существующую запись, которая будет равна 7. Запрос, вероятно, будет выглядеть примерно так:

SELECT * FROM foo WHERE id = 4 OFFSET 1

Как я могу получить следующую / предыдущую запись без извлечения всего набора результатов и итерации вручную?

Я использую MySQL 5.

Ответы [ 22 ]

0 голосов
/ 22 июня 2019

100% работает

SELECT * FROM `table` where table_id < 3 ORDER BY `table_id` DESC limit 1
0 голосов
/ 19 сентября 2009

Выберите top 1 * из foo, где id> 4 порядка по id asc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...