MySQL 通过经纬度实现寻找距离最近的五个站 输出SQL语句
时间: 2023-02-14 09:31:57 浏览: 140
使用MySQL的geometry类型处理经纬度距离问题的方法
5星 · 资源好评率100%
在 MySQL 中可以使用下面的 SQL 语句来查找距离给定经纬度最近的五个站:
```
SELECT *,
( 6371 * acos( cos( radians(latitude) )
* cos( radians( @lat ) )
* cos( radians( @lng ) - radians(longitude) )
+ sin( radians(latitude) )
* sin( radians( @lat ) ) ) ) AS distance
FROM stations
HAVING distance < @radius
ORDER BY distance
LIMIT 5;
```
其中,`stations` 是你存储站点信息的表的名称,`latitude` 和 `longitude` 分别是纬度和经度的字段名,`@lat` 和 `@lng` 是你要查询的经纬度,`@radius` 是查询的半径(以公里为单位)。
注意,需要在运行该 SQL 语句之前设置 `@lat`、`@lng` 和 `@radius` 的值。例如,你可以使用下面的语句来设置这些值:
```
SET @lat = 37.785834;
SET @lng = -122.406417;
SET @radius = 50;
```
希望这些内容能帮助到你!
阅读全文