表设计:
create table geo(
id int primary key auto_increment,
lat float,
lng float
);
查询语句:
SELECT id,
(
6371 * acos(
cos(radians(32))
* cos( radians( lat ) )
* cos(radians( lng ) - radians(121))
+
sin( radians(32) )
* sin( radians( lat ) )
)
)
AS distance
FROM geo HAVING distance < 100 ORDER BY distance LIMIT 0 , 20;
这条就是查到北纬32度,东经121度小于100公里的数据,且按距离从近到远