Все очень просто. Если учесть то, что координаты не учитывают кривизну земли, зная примерный радиус планеты можно вычислить дистанцию от одного объекта до другого с помощью легкой формулы.
Ну и в SQL это выражается как-то так:
SELECT
`id`,
(
6371 *
acos(
cos( radians( %lat ) ) *
cos( radians( `lat` ) ) *
cos(
radians( `long` ) - radians( %lon )
) +
sin(radians( %lat )) *
sin(radians(`lat`))
)
) as `distance`
FROM
`location`
HAVING
`distance` < %distance
ORDER BY
`distance`
Где %lat и %lon - координаты, %distance - радиус в километрах.