Cambio la formula della distanza in qualcosa che funziona da mysql 5.7.Non hai specificato il tuo database o presentato un esempio di violino per mostrare il tuo sistema, quindi ho selezionato 5.7 come minimo9mum e funziona anche in 8.0 come vedi nel violino.
la query interna ha bisogno di due cose l'id utente che cerca e la sua posizione, perché è escluso dai risultati e ovviamente per calcolare la distanza.
Il risultato della query viene verificato nella clausola where:spero di aver avuto l'idea giusta, quindi dovresti verificarlo
db<>violino qui