Java MySQL SQL语句之:根据经纬度计算距离/附近的人
数据库中有经度(lng),纬度(lat)两个字段,根据这两个字段计算与当前用户的距离
数据库表部分展示
SQL语句:
select
userinfo.lng, userinfo.lat,
ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((纬度 * PI() / 180 - lat * PI() / 180) / 2),2)
COS(纬度 * PI() / 180) * COS(lat * PI() / 180) * POW(SIN((经度 * PI() / 180 - lng *
PI() / 180) / 2),2))) ) AS distance
from userinfo
运行结果:
注释:只需要吧下方标记的换成自己的就行
select
表名.字段名1, 表名.字段名2,
ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((纬度 * PI() / 180 - lat * PI() / 180) / 2),2)
COS(纬度 * PI() / 180) * COS(lat * PI() / 180) * POW(SIN((经度 * PI() / 180 - lng *
PI() / 180) / 2),2))) ) AS distance
from 表名