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(
(
獲取的經(jīng)度 * PI() / 180 - lng * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS juli
FROM
list
ORDER BY
juli ASC
代碼如上,因為map里的經(jīng)緯度是xx.xxxxx,xx.xxxxx這種形式顯示的,我使用substring_index一個作為lng一個作為lat,但在計算過程中如果不加'就會顯示Unknown column 'lat' in 'field list'如果加了'雖然可以顯示,但顯示的juli全是相同的數(shù)據(jù),請問該如何解決呢?
想要實現(xiàn)的效果是juli的值不是相同的,而是經(jīng)過當(dāng)前位置經(jīng)緯度與商家的經(jīng)緯度計算后的結(jié)果。目前我用上面的代碼,只能實現(xiàn)juli顯示出來的值都是相同的...想要實現(xiàn)的效果如下...
lng
lat
juli
分割出來的經(jīng)度1
緯度1
1210
分割出來的經(jīng)度2
緯度2
1215
2 回答

哆啦的時光機
TA貢獻1779條經(jīng)驗 獲得超6個贊
已經(jīng)解決啦,給以后遇到類似情況的朋友一個解決方法。
SELECT
ROUND(
6378.138 * 2 * ASIN(
SQRT(
POW(
SIN(
(
獲取的緯度 * PI() / 180 - substring_index(maps, "," ,- 1) AS lat * PI() / 180
) / 2
),
2
) + COS(獲取的緯度 * PI() / 180) * COS(substring_index(maps, "," ,- 1) AS lat * PI() / 180) * POW(
SIN(
(
獲取的經(jīng)度 * PI() / 180 - substring_index(maps, ",", 1) AS lng * PI() / 180
) / 2
),
2
)
)
) * 1000
) AS juli
FROM
list
ORDER BY
juli ASC
就是把substring_index(maps, "," ,- 1) AS lat
這個直接放到計算里就好了。。。
- 2 回答
- 0 關(guān)注
- 361 瀏覽
添加回答
舉報
0/150
提交
取消