mysql 不按序号_MYSQL如何不按数字顺序排序?

代码如下

SELECT

maps,

case when maps then

ROUND(

6378.138 * 2 * ASIN(

SQRT(

POW(

SIN(

(

32.640351 * PI() / 180 - substring_index(maps, ",", - 1) * PI() / 180

) / 2

),

2

) + COS(32.640351 * PI() / 180) * COS(

substring_index(maps, ",", - 1) * PI() / 180

) * POW(

SIN(

(

117.013281 * PI() / 180 - substring_index(maps, ",", 1) * PI() / 180

) / 2

),

2

)

)

) * 1000

)

else '未知距离'

end distance

FROM

list

ORDER BY

distance ASC

目前我有一个list表,里面有个maps字段是用来存放商家设置的经纬度xx,xx,并在查询过程中,与当前位置的经纬度计算出距离,所以就有了distance这个新字段,问题是,当前有的商家设置了经纬度,有的没有设置。

于是使用case when maps then...else '未知距离' end distance区分了如果商家没有设置经纬度显示未知距离有设置的商家显示计算好的距离,当前需要解决的问题就是,我按这个方法区分后,就会造成排序无法按照距离大小排序,而变成了按数字顺序排序。如下

序号

距离

1

1050

2

1160

3

35

4

362500

5

3700

如何才能按照数字正常排序,而字符串未知距离放在数字距离下面呢?谢谢!~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值