通过当前用户的经纬度,查询附近的店铺SQL处理

通过当前用户的经纬度,查询附近的店铺

店铺表 shop:、id:主键、name:店铺名、lng:经度、lat:维度

id name lng lat
1 店铺1 113.665412 34.757975
2 店铺2 113.663781 34.756318
3 店铺3 113.665412 34.757975

sql语句:

SELECT *,SQRT(
POW(111.2 * (lat - 34.757975), 2) +  --lng:经度减经度 这个+号不能少
POW(111.2 * (113.665412- lng) * COS(lat / 57.3), 2)) --lat:维度减维度
AS distance
FROM shop  --表名
HAVING distance < 25  --获取25千米以内的店铺
ORDER BY distance;

-- 得到结果:distance字段为 当前位置到所有店铺的直线距离,单位km
-- HAVING distance < 25  #获取25千米以内的位置

sql结果:

id name lng lat distance
1 店铺1 113.665412 34.757975 0
2 店铺2 113.663781 34.756318 0
3 店铺3 113.665412 34.757975 0.23697265494701236
原文地址:https://www.cnblogs.com/yu-si/p/12899641.html