色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql距離

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

MySQL是一款優秀的關系型數據庫管理系統,被廣泛應用于各種應用場景。其中,距離計算是MySQL中一個比較常用的功能,可以用于計算地理位置、運輸成本、路線規劃等各種應用。

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

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;

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

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表中的經緯度坐標和起點位置之間的距離來篩選出距離該點最近的20個位置。其中POW函數用于計算平方,COS函數用于將緯度轉換為弧度。

以上兩個例子僅作參考,具體的距離計算方式需要根據應用場景的需求進行選擇??傊?,在MySQL中實現距離計算并不復雜,只需要掌握相關函數和語句即可。