MySQL计算两个经纬度距离并且排序
时间: 2023-06-12 20:06:25 浏览: 138
MYSQL 关于两个经纬度之间的距离由近及远排序
计算两个经纬度之间的距离可以使用Haversine公式,具体实现可以如下:
```sql
SELECT *,
6371 * 2 * ASIN(SQRT(POWER(SIN((lat1 - lat2) * PI() / 180 / 2), 2) + COS(lat1 * PI() / 180) * COS(lat2 * PI() / 180) * POWER(SIN((lng1 - lng2) * PI() / 180 / 2), 2))) AS distance
FROM your_table
ORDER BY distance ASC;
```
其中,`lat1`和`lng1`表示第一个经纬度,`lat2`和`lng2`表示第二个经纬度,`your_table`为存储经纬度信息的表名。`distance`为计算出的距离值,单位为千米。
使用`ORDER BY`进行排序,`ASC`表示升序,`DESC`表示降序。
注意:需要将经纬度值转换为弧度进行计算。
阅读全文