找出最近的用户MySQL

max*_*ax_ 5 php mysql geolocation

我有一个名为数据库users与列latitudelongitude,我想看看最近的用户(在用户users表),这是50公里半径一定的纬度和经度提供内$_POST.

你能告诉我怎么做吗?是否需要使用某种数学函数,或者MySQL中的函数是latitude_compare()什么?

ToB*_*oBe 2

你可以这样做:

SELECT *,

(ACOS((SIN(RADIANS(ref_latitude))*SIN(RADIANS(latitude))) + 
(COS(RADIANS(ref_latitude))*COS(RADIANS( latitude ))*COS(RADIANS( longitude)
-RADIANS(ref_longitude)))) * 6371) AS distance

FROM table
ORDER BY distance ASC
Run Code Online (Sandbox Code Playgroud)

A点:ref_latitude ref_longitude

B点:经纬度

我的纬度/经度值以度为单位,如下所示:

德累斯顿: 13.721067614881400 / 51.060033646337900