cálculos de distância em consultas mysql

Eu tenho que consultar um banco de dados de milhares de entradas e ordená-lo pela distância de um ponto especificado.

O problema é que cada entrada tem latitude e longitude e eu precisaria recuperar cada entrada para calcular sua distância. Com um banco de dados grande, não quero recuperar cada linha, isso pode levar algum tempo.

Existe alguma maneira de construir isso na consulta mysql, para que eu só precise recuperar as 15 entradas mais próximas.

Por exemplo.

`SELECT events.id, caclDistance($latlng, events.location) AS distance FROM events ORDER BY distance LIMIT 0,15`

    function caclDistance($old, $new){
       //Calculates the distance between $old and $new
    }

questionAnswers(5)

yourAnswerToTheQuestion