mysql中通过地理位置获取附近的人

分类:技术文档 - MySQL | 阅读(4053) | 发布于:2016-03-28 13:01

在Mysql数据表中每条数据都存有lat和lng两个值,用来表示经纬度位置,
先需要更具一个给定经纬度获取小于10KM的数据并且按距离最近的排序:
SELECT  
  id, (  
    6377.830 * acos (  
      cos ( radians(39.620076) )  
      * cos( radians( lat ) )  
      * cos( radians( lng ) - radians(116.067221) )  
      + sin ( radians(39.620076) )  
      * sin( radians( lat ) )  
    )  
  ) AS distance  
FROM merchant_store
HAVING distance < 10
ORDER BY distance  
LIMIT 0, 20; 
说明:
6377.830是地球半径
10:是km数
39.620076:是给定的纬度
116.067221:是给定的经度
此种方式虽然不推荐使用(无法使用Mysql索引),但也是一个可行的方案。

标签:地理位置mysql