Bạn phải sử dụng một cái gì đó như thế này để có được kết quả gần nhất với một vị trí nhất định
$query = sprintf(
"SELECT foo,
6371 * ACOS( Cos(RADIANS(lat)) * COS(RADIANS(%f))
* COS(RADIANS(%f) - RADIANS(lng)) + SIN(RADIANS(lat))
* SIN(RADIANS(%f)) ) * 1000 AS distance
FROM `%s`
ORDER BY distance",
$lat, $lag, $lng, $table
);
Bạn phải đặt $lat
, $lng
và $table
theo cấu trúc bảng của bạn và có thể đặt giới hạn cho kết quả.
Bạn nhận được giải thích chi tiết tại đây Tìm kiếm khoảng cách địa lý với MySQL .