Ще трябва да разгледате използването на формулата на Haversine . Ще намерите много онлайн примери, които ви показват как да приложите формулата както в PHP, така и в SQL.
Google има хубав пример за MySQL :
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;