У меня есть простая таблица под название пользователей со следующими данными:Следующие и предыдущие записей в MySQL после сортировки DESC
id | hops
1 | 3
2 | 1
3 | 5
4 | 2
5 | 6
6 | 5
Я хочу сделать предыдущую/следующую навигацию в соответствии с хмелем, отсортированным по убыванию. Я использую следующие для запроса сортировать по убыванию:
SELECT * FROM users ORDER BY hops DESC, id DESC
Это результат:
id | hops
5 | 6
6 | 5
3 | 5
1 | 3
4 | 2
2 | 1
Теперь то, что я хочу, что когда я ввести любой идентификатор в запросе тузд я получаю предыдущий и следующий ids в соответствии с сортировкой выше. Например:
Для получения идентификатора 5 (в данном случае ID = 5 имеет самый высокий хмель так что никаких предыдущие записи перед ним):
id (current) | hops (current) | id (prev) | hops (prev) | id (next) | hops (next)
5 | 6 | NULL | NULL | 6 | 5
Для ID 6:
id (current) | hops (current) | id (prev) | hops (prev) | id (next) | hops (next)
6 | 5 | 5 | 6 | 3 | 5
Для получения идентификатора 3 :
id (current) | hops (current) | id (prev) | hops (prev) | id (next) | hops (next)
3 | 5 | 6 | 5 | 1 | 3
Для ид 1:
id (current) | hops (current) | id (prev) | hops (prev) | id (next) | hops (next)
1 | 3 | 3 | 5 | 4 | 2
Для ид 4:
id (current) | hops (current) | id (prev) | hops (prev) | id (next) | hops (next)
4 | 2 | 1 | 3 | 2 | 1
Для идентификатора 2 (в данном случае ид = 2 имеет самый низкий хмель поэтому никаких последующих записей после него)
id (current) | hops (current) | id (prev) | hops (prev) | id (next) | hops (next)
2 | 1 | 4 | 2 | NULL | NULL
Благодарности
где 7 в вашем столе? –
извините ... это была ошибка :) –