mysql5.6根据经纬度查询距离
在MySQL 5.6中,您可以使用Haversine
公式来根据经纬度查询距离。以下是一个示例SQL查询,它计算出所有点与给定点(经度lon
和纬度lat
)的距离,并按距离排序:
SELECT id, (
6371 * acos(
cos(radians(:lat)) *
cos(radians(lat)) *
cos(radians(lon) - radians(:lon)) +
sin(radians(:lat)) *
sin(radians(lat))
)
) AS distance
FROM your_table
ORDER BY distance ASC;
在这个查询中,your_table
是包含经纬度数据的表格,id
是表格中的一个字段,lat
和lon
是表格中存储纬度和经度的字段。:lat
和:lon
是查询时传入的参数,即你想要计算距离的那个点的经度和纬度。
6371
是地球半径(单位为公里),radians
函数将度转换为弧度。acos
函数计算两点间的角度,公式实现了距离的计算。
请确保将your_table
、id
、lat
和lon
替换为您数据库中实际的表名和字段名。