Beatrice: vorgänge rund nachfolger ermitteln

Beitrag lesen

id	! titel 	! sorting
23	! TITEL_5	!	7
54	! TITEL_1	!	2
34	! TITEL_2	!	4
23	! TITEL_3	!	5
54	! TITEL_4	!	6

Ich habe die ID und möchte die ID unter und überhalb dieser haben.

Du suchst dir die Sortierung der betreffenden Zeile und dann jeweils die Zeile, deren Sortierung gleich oder größer/kleiner ersterer Sortierung, aber nicht die gewünschte Zeile ist.

Der ausdrückliche Ausschluss der betreffenden Zeile ist nötig, falls die Sortierung nicht eindeutig ist, es also mehrere Zeilen mit gleicher Sortierzahl gibt.

Das Ganze kannst du zweimal machen, je einmal für die Zeile darüber und darunter, oder mit union in einem Rutsch:

(select * from tabelle where sortierung <= (select sortierung from tabelle where id=34) and id != 34 order by sortierung limit 1) 
union 
(select * from tabelle where sortierung >= (select sortierung from tabelle where id=34) and id != 34 order by sortierung limit 1);