mysql - 修改函数以调用/单步执行表

标签 mysql stored-functions

本月早些时候,我在一个问题中获得了一个函数,该函数返回给定两个经度和两个纬度点的方位:

DELIMITER $$

DROP FUNCTION IF EXISTS `initial_bearing`$$

CREATE FUNCTION `initial_bearing`(
    lat1 DOUBLE, lon1 DOUBLE, 
    lat2 DOUBLE, lon2 DOUBLE
 ) RETURNS DOUBLE
NO SQL
DETERMINISTIC
COMMENT 'Returns the initial bearing, in degrees, to follow the great circle route
         from point (lat1,lon1), to point (lat2,lon2)'
BEGIN

RETURN (360.0 + 
  DEGREES(ATAN2(
   SIN(RADIANS(lon2-lon1))*COS(RADIANS(lat2)),
   COS(RADIANS(lat1))*SIN(RADIANS(lat2))-SIN(RADIANS(lat1))*COS(RADIANS(lat2))*
        COS(RADIANS(lon2-lon1))
  ))
 ) % 360.0;
END$$

DELIMITER ;

我如何修改它,以便它逐步遍历给定的表,并使用每个记录中的 MinLatitude、MaxLatitude、MinLongitude、MaxLongitude 代替函数中的变量,然后将输出、方位角返回到中的方位角字段相同的记录?

最佳答案

我误认为存储过程与存储函数的工作方式是我的错。事实上,这个过程工作得很好,只需要作为查询的一部分来调用,例如从表A 中选择initial_bearing (Lat1, Long1, Lat2, Long2)。我想我会保留这个以防其他初学者犯同样的错误。抱歉浪费了带宽。

关于mysql - 修改函数以调用/单步执行表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396550/

相关文章:

javascript - 如何在我的 React 应用程序中实现 Sequalize API?

java - 存储函数 - 发送/接收 boolean 值 - BD

php - 使用 mysql 存储函数和选择查询

mysql - 在 View 中使用 `CAST ( 1 AS BIT )`

PHP - 多个 while($row = mysql_fetch_array($variable)) { } 错误

java - 等待空闲对象 Apache 连接池超时

php - 如何在 symfony 中插入具有 ManyToOne 关系的 user_id?

mysql - 计算引用 parent 和 child 的行数

oracle - 我可以在 PL/SQL 中返回一个函数吗?

mysql - 如何创建返回不带元音的文本的存储过程