mysql距离计算,单位m,以及排序
lon 经度 lat 纬度
/*传入的参数为 纬度 纬度 经度 ASC升序由近至远 DESC 降序 由远到近 */ (单位 m)
SELECT
*,
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
"你的纬度" * PI() / 180 - lat * PI() / 180
) / 2
),
2
) + COS(40.0497810000 * PI() / 180) * COS(lat * PI() / 180) * POW(
SIN(
(
"你的经度" * PI() / 180 - lon * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS distance
FROM
table
ORDER BY
distance ASC
最后根据 distance 排序 得到距离