SELECT
substring_index(maps, ",", 1) AS lng,substring_index(maps, "," ,- 1) AS 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
)
)
) * 1000
) AS juli
FROM
list
ORDER BY
juli ASC
代码如上,因为map里的经纬度是xx.xxxxx,xx.xxxxx这种形式显示的,我使用substring_index一个作为lng一个作为lat,但在计算过程中如果不加'
就会显示Unknown column 'lat' in 'field list'
如果加了'
虽然可以显示,但显示的juli
全是相同的数据,请问该如何解决呢?
想要实现的效果是juli
的值不是相同的,而是经过当前位置经纬度与商家的经纬度计算后的结果。目前我用上面的代码,只能实现juli显示出来的值都是相同的...想要实现的效果如下...
lng | lat | juli |
---|---|---|
分割出来的经度1 | 纬度1 | 1210 |
分割出来的经度2 | 纬度2 | 1215 |
已经解决啦,给以后遇到类似情况的朋友一个解决方法。
就是把
substring_index(maps, "," ,- 1) AS lat
这个直接放到计算里就好了。。。