Musisz przyjrzeć się użyciu Formuły Haversine . Znajdziesz wiele przykładów online pokazujących, jak zaimplementować formułę zarówno w PHP, jak i SQL.
Google ma fajny przykład dla 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;