再实际的开发中,我们经常需要使用地理经纬度信息来做排序,比如查找附近的门店,或查找离我最近的人的需求等。
可直接套用下方mysql查询语句进行数据查询排序
- sql中
latitude
为数据库表中的纬度,longitude
代表经度 - {latitude} 代表传入的纬度,{latitude} 代表传入的经度,主要为用户当前位置信息,
查询获得结果 distance
单位为米
SELECT *, (round(6367000 * 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))))) AS distance
FROM ec_store WHERE is_show = 1 and is_del = 0
ORDER BY distance asc
评论 (0)