mysql问题
selectidfromtestjuliwherelat>30.891493-1andlat<30.891493+1andlng>103.590427-1andlng<1...
select id from testjuli where
lat > 30.891493-1 and
lat < 30.891493+1 and
lng > 103.590427-1 and
lng < 103.590427+1
order by ACOS(SIN((30.891493 * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS((30.891493 * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) *COS((103.590427* 3.1415) / 180 - (lng * 3.1415) / 180 ) ) * 6380 asc limit 10;
这个是经纬度计算把查询到的距离最近的数据id列出来, 我想要获得这个计算距离的结果,怎么写语句啊 我是小白 帮我写一下吧
还有就是我这个是做定位附近的人的,就是一定范围内的人,还有之间的距离,mysql里面怎么设置计算范围内的人呢 大神帮帮忙吧 展开
lat > 30.891493-1 and
lat < 30.891493+1 and
lng > 103.590427-1 and
lng < 103.590427+1
order by ACOS(SIN((30.891493 * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS((30.891493 * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) *COS((103.590427* 3.1415) / 180 - (lng * 3.1415) / 180 ) ) * 6380 asc limit 10;
这个是经纬度计算把查询到的距离最近的数据id列出来, 我想要获得这个计算距离的结果,怎么写语句啊 我是小白 帮我写一下吧
还有就是我这个是做定位附近的人的,就是一定范围内的人,还有之间的距离,mysql里面怎么设置计算范围内的人呢 大神帮帮忙吧 展开
1个回答
展开全部
把计算的距离放到select里面就可以了:
select id, ACOS(SIN((30.891493 * 3.1415) / 180 ) *SIN((lat * 3.1415) / 180 ) +COS((30.891493 * 3.1415) / 180 ) * COS((lat * 3.1415) / 180 ) *COS((103.590427* 3.1415) / 180 - (lng * 3.1415) / 180 ) ) * 6380 as distance from testjuli where
lat > 30.891493-1 and
lat < 30.891493+1 and
lng > 103.590427-1 and
lng < 103.590427+1
order by distance asc limit 10;
至于“设置计算范围内的人”,没看懂啥意思,上面选择出来的id不就是对应人的id 吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |