Zmieniłem formułę odległości na coś, co działa od czasu mysql 5.7. Nie podałeś_ swojej bazy danych ani nie przedstawiłeś przykładu skrzypiec, aby pokazać swój system, więc wybrałem 5.7 jako mini9mum i działa również w wersji 8.0, jak widać w skrzypcach.
wewnętrzne zapytanie wymaga dwóch rzeczy:identyfikatora użytkownika, który wyszukuje, i jego pozycji, ponieważ jest on wykluczony z wyników i oczywiście do obliczenia odległości.
Wynik zapytania jest sprawdzany w klauzuli WHERE - mam nadzieję, że wpadłem na dobry pomysł, więc powinieneś to sprawdzić
db<>fiddle tutaj