经度纬度是两个字段mysql中ST_Distance 怎么用
时间: 2024-02-06 18:12:45 浏览: 131
MYSQL 关于两个经纬度之间的距离由近及远排序
在MySQL中,可以使用空间函数`ST_Distance`来计算两个地点之间的距离,其中需要将经纬度转换为空间点(Point)类型。假设有两个地点,分别存储在`location`表中,可以使用以下语句计算它们之间的距离:
```
SELECT ST_Distance(
Point(longitude1, latitude1),
Point(longitude2, latitude2)
) AS distance
FROM location
WHERE id = 1;
```
其中`Point(longitude1, latitude1)`和`Point(longitude2, latitude2)`将经度和纬度转换为空间点类型,`ST_Distance`函数计算两个点之间的距离,并将结果命名为`distance`。这里假设需要计算id为1的地点与另一个地点之间的距离,因此使用`WHERE`条件限定查询结果。
需要注意的是,`ST_Distance`函数返回的距离单位与经纬度的单位相同,因此可能需要进行单位转换。例如,如果需要将距离转换为千米,可以将查询语句改为:
```
SELECT ST_Distance(
Point(longitude1, latitude1),
Point(longitude2, latitude2)
) / 1000 AS distance_km
FROM location
WHERE id = 1;
```
这里将距离除以1000,将单位从米转换为千米,并将结果命名为`distance_km`。
阅读全文