mysql 查询数据库中附近的记录

我有自己的经度$lon和纬度$lat,数据库的记录中有lat,lon字段存储了经度纬度值,怎么根据自己的经度纬度这两个值去数据库中查找与自己距离附近的记录并且按照距离降序

阅读 3.5k
3 个回答

select * from table where power(lat - $lon, 2) + power(lon - $lon, 2) <= distance的平方;
不过这样的话,就无法利用索引。这个方案不是好的方案。

redis3.2 就有geohash功能了,很方便使用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题