Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка предыдущей и последующей записей из запроса / 5 сообщений из 5, страница 1 из 1
13.12.2017, 20:32
    #39569255
dima_sql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка предыдущей и последующей записей из запроса
Подскажите каким образом можно выбрать предыдущую и последующую записи из результата запроса:

Код: sql
1.
2.
3.
4.
5.
SELECT
cr.id, cr.id_consumer, cr.date, cr.record
FROM consumer_record cr
WHERE id_consumer = '43'
ORDER BY cr.date DESC


Вывод запроса прикрепил.

Мне известно id записи, например это 360. Следующая по столбцу date запись c id 372, а предыдущая с id 348
Сложность в том, что даты не обязательно могут идти последовательно по id в исходной таблице. Поэтому по id выборку делать нельзя.
...
Рейтинг: 0 / 0
13.12.2017, 20:42
    #39569260
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка предыдущей и последующей записей из запроса
FAQ: Нумерация строк и другие вопросы про использование переменных
Номера, в отличие от дат, будут последовательны и непрерывны, причём с указанной тобою сортировкой.
...
Рейтинг: 0 / 0
13.12.2017, 20:43
    #39569261
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка предыдущей и последующей записей из запроса
Ну или обычный подзапрос, отбор по минимуму разности даты с нужной записью.
...
Рейтинг: 0 / 0
13.12.2017, 21:47
    #39569276
dima_sql
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка предыдущей и последующей записей из запроса
AkinaНу или обычный подзапрос, отбор по минимуму разности даты с нужной записью.
Спасибо, так и делал, но решил ещё раз проверить.

Во всем оказались виноваты кавычки. Они обязательно нужны.
Вот может кому пригодится.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT t1.*
FROM
(SELECT cr.id, cr.id_consumer, cr.date, cr.record
FROM consumer_record cr
WHERE id_consumer = 43
ORDER BY cr.date DESC) t1
WHERE date < '2017-05-25'
ORDER BY date DESC
LIMIT 1;
...
Рейтинг: 0 / 0
13.12.2017, 22:01
    #39569281
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка предыдущей и последующей записей из запроса
dima_sqlВо всем оказались виноваты кавычки. Они обязательно нужны.Для даты - да. Для числа (как на первом скриншоте) - вовсе даже нет.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка предыдущей и последующей записей из запроса / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]