码农 + 关注

签名:熬夜写个代码吧

两种根据经纬度查询附近事物的sql语句

发表于 1个月前   216次查看    0评论  5 赞

前言:在项目开发中经常会遇到根据经纬度查找附近事物的功能,比如附近的人、附近的店铺等等,所以今天给大家介绍下根据经纬度查询附近事物的sql语句。


1、根据经纬度按照距离查找附近前几个

//lng,lat为数据库字段
SELECT shop_name,lng,lat,  
        (POWER(MOD(ABS(lng - 经度),360),2) + POWER(ABS(lat - 纬度),2)) AS distance  
        FROM `user_location`  
        ORDER BY distance LIMIT 100


2、根据经纬度按照距离查找附近几公里内的事物

//附近5公里
//lng,lat为数据库字段
select ROUND(6378.138*2*ASIN(SQRT(POW(SIN((纬度*PI()/180-lat*PI()/180)/2),2)
+COS(纬度*PI()/180)*COS(lat*PI()/180)*POW(SIN((经度*PI()/180-lng*PI()/180)/2),2)))*1000) 
AS distance FROM shop having distance <= 5000 order by distance asc


5人已赞


本文由Fun言网 – 码农创作,转载请务必附上本文链接和出处,欢迎参与我们的付费投稿计划


你还没有登录,请先 登录注册!
文章评论0