mysql查询附近10公里的数据并按照最近距离排序
要实现查询附近10公里的数据并按照最近距离排序,可以使用MySQL的地理空间函数和操作符来实现。以下是一种实现方法:
首先,假设你的表名为locations,其中包含latitude(纬度)和longitude(经度)两个字段,表示地理坐标。
- 创建一个空间索引,用于优化地理空间查询:
ALTER TABLE locations ADD SPATIAL INDEX spatial_index_name (latitude, longitude);
- 使用
ST_Distance_Sphere函数计算距离,并按照距离排序:
SELECT *, ST_Distance_Sphere(point(latitude, longitude), point(:lat, :lng)) AS distance
FROM locations
WHERE ST_Distance_Sphere(point(latitude, longitude), point(:lat, :lng)) <= 10000
ORDER BY distance ASC;
在上述查询中,:lat和:lng是查询点的纬度和经度,单位为度。10000表示距离的上限,单位为米。
这样就可以查询到距离给定坐标最近的10公里范围内的数据,并按照距离排序。
原文地址: https://www.cveoy.top/t/topic/jgIN 著作权归作者所有。请勿转载和采集!