一张表,表的经度和维度都为double或者decimal类型
传入参数经度116.366216,纬度39.939834.
SELECT
*,
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
40.0497810000 * PI() / 180 - localhost_latitude * PI() / 180
) / 2
),
2
) + COS(40.0497810000 * PI() / 180) * COS(localhost_latitude * PI() / 180) * POW(
SIN(
(
116.3424590000 * PI() / 180 - localhost_longitude * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS juli
FROM
shop_info
ORDER BY
juli ASC
sql执行结果,juli单位为m,如果需要公里则需要去掉*1000的。