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