Mysql 语句,根据经纬度,计算10公里范围内的数据

SQL公式:

select ROUND(6378.138*2*ASIN(SQRT(POW(SIN(($latitude*PI()/180-latitude*PI()/180)/2),2)+COS($latitude*PI()/180)*COS(latitude*PI()/180)*POW(SIN(($longitude*PI()/180-longitude*PI()/180)/2),2)))*1000) AS distance FROM shop having distance <= 100000 order by distance asc

注意,这里的距离单位是米;

实例:

SELECT
	ROUND(
	6378.138 * 2 * ASIN(
	SQRT(
	POW( SIN( ( 100/ 180- lat * PI( ) / 180 ) / 2 ), 2 ) + COS(100 / 180 ) * COS( lat * PI( ) / 180 ) * POW( SIN( ( 114.08018 * PI( ) / 180- lon * PI( ) / 180 ) / 2 ), 2 ) 
	) 
	) * 1000 
	) AS distance
FROM
	**_**_results(自己的数据表)
HAVING
	distance <= 1000000
ORDER BY
	distance ASC

得到的结果是:

Mysql 语句,根据经纬度,计算10公里范围内的数据_第1张图片
需要注意的事,计算要放在程序里面来,不要直接在SQL里来计算!!!

  • 如果觉得对你有所帮助,欢迎点在看和关注!

在这里插入图片描述

你可能感兴趣的:(数据库,mysql,经纬度,距离10km)