gpt4 book ai didi

mysql - SQL Select 基于经纬度的半径搜索

转载 作者:可可西里 更新时间:2023-11-01 06:47:07 30 4
gpt4 key购买 nike

我有 2 个表:

Events:
- id
- name
- place

Places:
- id
- name
- lat
- lng

我想从 current 检索 10KM radius(基于地点 lat & lng)内的所有事件 latlng。我该怎么做?

谢谢!

最佳答案

如果您愿意使用扩展,MySQL 5.6 及更高版本中的地理空间扩展旨在解决此类问题。您需要在 places 表上建立空间索引:

ALTER TABLE places ADD SPATIAL INDEX lat, lng

select name from places
order by st_distance(point(@lng, @lat), point(lng, lat))
limit 10

实际距离的实际计算量有点大。以下帖子列出了您可能想尝试的一些方法:http://www.plumislandmedia.net/mysql/using-mysqls-geospatial-extension-location-finder/

有关更多详细信息,请查看 http://www.percona.com/blog/2013/10/21/using-the-new-spatial-functions-in-mysql-5-6-for-geo-enabled-applications/

关于mysql - SQL Select 基于经纬度的半径搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10564600/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com