Mysql 经纬度范围搜索

select * from DjCity 
where 
`open` = 0
AND lat > 34.75661006414-1 
and lat < 34.75661006414+1 
and lng > 113.64964384986-1 
and lng < 113.64964384986+1 
order by ACOS(SIN((34.75661006414 * 3.1415) / 180 ) 
*SIN((lat * 3.1415) / 180 ) +COS((34.75661006414 * 3.1415) / 180 ) 
* COS((lat * 3.1415) / 180 ) *COS((113.64964384986* 3.1415) / 180 - 
(lng * 3.1415) / 180 ) ) * 6380 asc limit 3


备注:

只对于经度和纬度大于或小于该用户1度(111公里)范围内的用户进行距离计算,同时对数据表中的经度和纬度两个列增加了索引来优化where语句执行时的速度.




你可能感兴趣的:(Mysql 经纬度范围搜索)