mysql 根据查询计算as的字段进行排序,返回的排序数据不对

mysql 根据查询计算as的字段进行排序,返回的排序数据不对


下面展示一些 sql语句片段

 SELECT c.*,
         (FORMAT ((2 * asin (SQRT(POWER(SIN(((lat * PI() / 180.0)
        - (22.511885 * PI()/180.0))/2),2)
        + COS(lat * PI()/180.0)
        * COS(22.511885 * PI()/180.0)
        * POWER(SIN((lng * PI()/180.0
        - 113.925978 * PI()/180.0)/2),2))))
        * 6378.137,2)) AS distance  
        FROM
        sys_counter c
ORDER BY distance
			  limit 1,5

逻辑代码块的作用是计算经纬度的距离。

重点是我排序数据乱了,原因是排序字段必须为数字不能为字符串,FORMAT保留后面两位小数后的数值为字符串,所以排序就有问题。

解决方案: 将 FORMAT改为ROUND函数就可以,保留两位小数后为数值而不是字符串。就解决啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值