Powiedzmy, że mam rekordy z identyfikatorami 3,4,7,9 i chcę być w stanie przechodzić od jednego do drugiego, nawigując za pomocą następnych / poprzednich łączy. Problem polega na tym, że nie wiem, jak pobrać rekord o najbliższym wyższym identyfikatorze.
Więc kiedy mam rekord o identyfikatorze 4, muszę być w stanie pobrać następny istniejący rekord, który miałby wartość 7. Zapytanie prawdopodobnie wyglądałoby mniej więcej tak:
SELECT * FROM foo WHERE id = 4 OFFSET 1
Jak mogę pobrać następny / poprzedni rekord bez pobierania całego zestawu wyników i ręcznego iterowania?
1 odpowiedź
następny:
select * from foo where id = (select min(id) from foo where id > 4)
poprzedni:
select * from foo where id = (select max(id) from foo where id < 4)