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 公里范围内的数据,并按照距离排序。
原文地址: http://www.cveoy.top/t/topic/chQ6 著作权归作者所有。请勿转载和采集!