Zitat:
Deswegen limitiere ich das ja auf einen Datensatz.
Es genügt, wenn der eine Datensatz in der Sortierfolge vor dem aktuellen liegt, damit der ganze Algorithmus nicht funktioniert.
Code:
$
query = "SELECT * FROM adressen
WHERE
(gesch_firma > ( SELECT gesch_firma FROM adressen WHERE id = $id ))
OR
((gesch_firma = ( SELECT gesch_firma FROM adressen WHERE id = $id ))
and
(name > ( SELECT name FROM adressen WHERE id = $id )))
OR
((gesch_firma = ( SELECT gesch_firma FROM adressen WHERE id = $id ))
and
(name = ( SELECT name FROM adressen WHERE id = $id ))
and
(vorname > ( SELECT vorname FROM adressen WHERE id = $id )))
ORDER BY gesch_firma, name, vorname ASC limit 0,1";