MySQL查询附近的数据.并按距离进行排序.

17 篇文章 0 订阅

业务背景:

查看我附近的公共厕所, 查询的时候通过传入当前使用人的经度(lng)与纬度(lat), 与数据库里的厕所信息进行位置计算, 得出我距离每个厕所的距离(单位:公里), 并且按照距离的远近进行排序, 最近的显示在最上面

SELECT
    t1.name,
    t1.address,
    t1.uid,
    t1.code
    CONVERT(ACOS(COS(${lat}*PI()/180 )*COS(t1.lat*PI()/180)*COS(${lng}*PI()/180-t1.lng*PI()/180)+SIN(${lat}*PI()/180 )*SIN(t1.lat*PI()/180))*6370996.81/1000, DECIMAL(10,2)) AS distance    
FROM
    toilet t1
WHERE
    t1.is_delete = '0' 
ORDER BY 
    distance ASC

查询后的结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值