用一句 Mysql 语句,根据经纬度,计算5公里范围内的数据
经常会有这样的需求,已知用户具体的经纬度,要查询出距离用户最近 X 公里内的商家下面给出一条SQL语句来解决这个问题ROUND(6378.138*2*ASIN(SQRT(POW(SIN(($latitude*PI()/180-latitude*PI()/180)/2),2)+COS($latitude*PI()/180)*COS(latitude*PI()/180)...
·
经常会有这样的需求,已知用户具体的经纬度,要查询出距离用户最近 X 公里内的商家
下面给出一条SQL语句来解决这个问题
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)
说明:6378.138这个是地球的直径,单位千米.$latitude 是用户位置的纬度,$longitude是用户位置经度.latitude 为商户的纬度字段,longitude为商户的经度字段。上面一段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 <= 5000 order by distance asc
更多推荐
已为社区贡献1条内容
所有评论(0)