Hallo Joachim,
du hast Recht, der Ansatz über die Distanz führt zu einem falschen Ergebnis, wenn die beiden Abstände zu den Nachbarn nicht gleich groß sind. Entweder der Vorgänger oder der Nachfolger müssen exakt bestimmt werden, sodass sich eine Subquery nicht vermeiden lässt:
SQL-Code:
/* MYSQL Syntax, ungetestet */
SELECT id
FROM tab
WHERE id >= (
SELECT MAX(id)
FROM tab
WHERE id < :id
)
ORDER BY id
LIMIT 3
Freundliche Grüße