Ik verander de afstandsformule in iets dat werkt sinds mysql 5.7. Je hebt je database niet gespecificeerd of een vioolvoorbeeld gegeven om je systeem te laten zien, dus ik selecteerde 5.7 als mini9mum en het werkt ook in 8.0 zoals je in de viool ziet.
de innerlijke zoekopdracht heeft twee dingen nodig:de gebruikers-ID die zoekt en zijn positie, omdat hij wordt uitgesloten van de resultaten en natuurlijk om de afstand te berekenen.
Het resultaat van de zoekopdracht wordt gecontroleerd in de waar-clausule - ik hoop dat ik het juiste idee heb, dus u moet dat controleren
db<>fiddle hier