您现在的位置是:网站首页>文章内容文章内容

MySQL实现附近经纬度排序

李鹏2021-06-30MySql994人已围观

现在很多手机软件都有附近距离的功能,如何通过 MySQL 数据库中的 SQL 实现呢?如何根据某点的经纬度对数据库中附近位置进行排序?怎样计算两个经纬度之间的具体距离?下面雷雪松带大家看看具体的 SQL 语句实现附近经纬度排序的写法。

SQL 根据经纬度计算距离的公式,第一点经纬度:lng1 lat1,第二点经纬度:lng2 lat2,单位米:

round(6378.138*2*asin(SQRT(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2),2)+cos(lat1*pi()/180)
*cos(lat2*pi()/180)*pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000)

完整的SQL语句,只需要替换第一个点的经纬度和第二个点的经纬度即可。

SELECT * FROM TABLE ORDER BY round(6378.138*2*asin(SQRT(pow(sin( (lat1*pi()/180-lat2*pi()/180)/2)
,2)+cos(lat1*pi()/180)*cos(lat2*pi()/180)*pow(sin( (lng1*pi()/180-lng2*pi()/180)/2),2)))*1000) 
ASC LIMIT 10

来源:MySQL实现附近经纬度排序

0

文章评论

我的名片

姓名:李鹏

职业:PHP工程师

现居:广东-深圳

网址:https://www.lipeng93.cn