欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql距離

錢琪琛1年前8瀏覽0評論

MySQL是一款優(yōu)秀的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被廣泛應(yīng)用于各種應(yīng)用場景。其中,距離計算是MySQL中一個比較常用的功能,可以用于計算地理位置、運(yùn)輸成本、路線規(guī)劃等各種應(yīng)用。

MySQL中距離計算的方式主要有兩種:基于經(jīng)緯度的球面距離計算和基于歐幾里得距離的平面距離計算。在這兩種計算方式中,球面距離計算更為精確,但是計算耗時也更長。

SELECT 
id, 
( 3959 * acos( cos( radians(37) ) * 
cos( radians( lat ) ) * 
cos( radians( lng ) - radians(-122) ) + 
sin( radians(37) ) * 
sin( radians( lat ) ) ) ) AS distance 
FROM markers 
HAVING distance< 25 
ORDER BY distance LIMIT 0 , 20;

上面的代碼是一個基于經(jīng)緯度的球面距離計算的例子。其中,markers表中包含了各個地點(diǎn)的經(jīng)緯度坐標(biāo),我們需要在這個表中找到離指定位置最近的20個地點(diǎn),距離小于25英里。這個查詢語句先通過cos和sin函數(shù)將經(jīng)度和緯度轉(zhuǎn)換為弧度,然后計算出兩個位置之間的球面距離。最后通過HAVING和ORDER BY語句來進(jìn)行過濾和排序。

SELECT
id,
SQRT(
POW(69.1 * (lat - [start_lat]), 2) +
POW(69.1 * ([start_lon] - lon) * COS(lat / 57.3), 2)
) AS distance
FROM
locations
HAVING distance< 10
ORDER BY distance ASC
LIMIT 0, 20

這個代碼是一個基于歐幾里得距離的平面距離計算的例子。通過locations表中的經(jīng)緯度坐標(biāo)和起點(diǎn)位置之間的距離來篩選出距離該點(diǎn)最近的20個位置。其中POW函數(shù)用于計算平方,COS函數(shù)用于將緯度轉(zhuǎn)換為弧度。

以上兩個例子僅作參考,具體的距離計算方式需要根據(jù)應(yīng)用場景的需求進(jìn)行選擇??傊?,在MySQL中實(shí)現(xiàn)距離計算并不復(fù)雜,只需要掌握相關(guān)函數(shù)和語句即可。