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

Опубликовано в Пнд, 06/08/2012 - 22:37
mysql sql
Есть таблица с данными:

+----+---------------------+
| 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
  sql
Похожие новости:
Добавлено: 30 Июля 2018 07:55:14 Добавил: Андрей Ковальчук
Добавить