MySQL → Узнать следующую и предыдущую запись в выборке по полю с неуникальными значениями
Есть таблица с данными:
+----+---------------------+ | id | date | +----+---------------------+ | 1 | 2012-08-06 22:09:40 | | 2 | 2012-08-06 22:09:44 | | 3 | 2012-08-06 22:10:00 | | 4 | 2012-08-06 22:10:00 | | 5 | 2012-08-06 22:10:17 | +----+---------------------+
Нужно, зная id
и date
определённой записи, узнать следующую и предыдущую запись в такой вот выборке:
SELECT * FROM `table` ORDER BY `date` ASC, `id` ASC
Получить следующую запись:
SELECT * FROM `table` WHERE `date` > $date OR (`date` = $date AND `id` > $id) ORDER BY `date` ASC, `id` ASC LIMIT 1
Получить предыдущую запись:
SELECT * FROM `table` WHERE `date` < $date OR (`date` = $date AND `id` < $id) ORDER BY `date` DESC, `id` DESC LIMIT 1
Комментарии
Спасибо оченоь помогло в листинге между файлами!
Большое спасибо за статью, она помогла мне.
Спасибо автор! Клик тебе за статью по рекламе
Благодарю, выручил)
Оставить комментарий