2
我有以下情況,由於我是mysql新手,沒有人指導我,我會問你。計算MySQL coordonate並更新行
我需要通過座標(lat,long在同一列中)的表格進行循環,並將它們與給定值進行比較。如果距離低於1公里,則更新與該條件相關的另一列。
事情是這樣的:
Foreach row in Table
if CalculateDistance(lat1,long1,lat2,long2) < 1
Update row.Column2
我發現了一個公式來計算,在這裏:https://gist.github.com/Usse/4086343
在這個時刻,我想測試公式。
謝謝
編輯1:
所以我創建的過程,但我堅持。
我創建了一個分割字符串函數:
CREATE DEFINER=`root`@`localhost` FUNCTION `strSplit`(x varchar(255), delim varchar(12), pos int) RETURNS varchar(255) CHARSET utf8
return replace(substring(substring_index(x, delim, pos), length(substring_index(x, delim, pos - 1)) + 1), delim, '')
我的存儲的更新的程序表是這樣的:
CREATE DEFINER=`root`@`localhost` PROCEDURE `turn_camera_on`(coordonates varchar(50))
BEGIN
DECLARE lat1 varchar(50);
DECLARE long1 varchar(50);
SET lat1 = strSplit(coordonates, ',', 1);
SET long1 = strSplit(coordonates, ',', 2);
UPDATE deviceinfo
SET CameraOn = 1
where CalculateDistance(lat1,long1,**lat2,long2**) < 1;
END
的問題是,LAT2和long2是一個字符串成一排,在表...
UPDATE my_table SET column2 = x WHERE Calcu .... <1 – Strawberry
或者你的問題是關於如何突破拉特。和長。從他們的共同專欄? –
我認爲Straberry爲我提供了答案。我會回來更新asap – patri