Jak uzyskać następny / poprzedni rekord w MySQL?

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)

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.