嗨,我有以下表格:
--------------------------------------------
| id | city | Latitude | Longitude |
--------------------------------------------
| 1 | 3 | 34.44444 | 84.3434 |
--------------------------------------------
| 2 | 4 | 42.4666667 | 1.4666667 |
--------------------------------------------
| 3 | 5 | 32.534167 | 66.078056 |
--------------------------------------------
| 4 | 6 | 36.948889 | 66.328611 |
--------------------------------------------
| 5 | 7 | 35.088056 | 69.046389 |
--------------------------------------------
| 6 | 8 | 36.083056 | 69.0525 |
--------------------------------------------
| 7 | 9 | 31.015833 | 61.860278 |
--------------------------------------------
现在我想要获取两个点之间的距离。比如用户A位于城市3,用户B位于城市7。我的场景是:一个用户拥有一个城市和纬度经度,并且正在搜索与他所在城市距离的其他用户。例如,拥有城市3的用户正在搜索。他想要获得任何其他城市的用户的距离,例如城市7。我已经搜索并找到以下查询:
SELECT `locations`.`city`, ( 3959 * acos ( cos ( radians(31.589167) ) * cos( radians( Latitude ) ) * cos( radians( Longitude ) - radians(64.363333) ) + sin ( radians(31.589167) ) * sin( radians( Latitude ) ) ) ) AS `distance` FROM `locations` HAVING (distance < 50)
据我所知,这个查询会找到一个点到所有其他点的距离。现在,我想要得到一个点到另一个点的距离。非常感谢任何指导。