我想获得两个 GeoPoints 之间的距离(使用 LatLong),因为我从提供的解决方案中编写了 GETDISTANCE 函数 [ MySQL 函数来计算两个纬度和经度之间的距离。如果我独立调用函数,它就像魅力一样。据我了解,我无法ResultSet
从 MySQL 中的函数返回,所以我创建了过程并在过程中调用了函数,如下所示:
DELIMITER $$
CREATE PROCEDURE GetNearByGeoPoints(IN Lat REAL, IN Longi REAL)
BEGIN
DECLARE v_max int;
DECLARE v_counter int unsigned default 0;
SET @v_max = (SELECT COUNT(*) FROM TransmitterPointsData);
START TRANSACTION;
WHILE v_counter < v_max
DO
SELECT @coverageID :=CoverageID, @tableLatitude := Latitude, @tableLongitude :=Longitude FROM TransmitterPointsData LIMIT v_counter,1;
SET @Dist= GETDISTANCE(Lat, Longi, tableLatitude, tableLongitude);
UPDATE TransmitterPointsData SET DynamicDistance = @Dist WHERE CoverageID= @coverageID;
set v_counter=v_counter+1;
END WHILE;
COMMIT;
SELECT * FROM TransmitterPointsData;
END $$
DELIMITER ;
我想做的是从用户那里获取一组 LatLong 参数,并将其与表中的每组 LatLong 进行比较。在从函数获得输出后,我正在使用 coverageID 上的 where 条件更新 TransmitterPointsData 表。
到目前为止,这是我的第一个 MySQL 查询,我遵循语法,但我不知道为什么要在Column中获取所有null
值。DynammicDistance
先感谢您