php - MYSQL - 计算一个角度是否在两个角度之间

标签 php mysql

我正在尝试从数据库中选择所有点,只要我的角度在另外两个角度之间...我在 PHP 中有这段代码,效果很好:

public static function angle_between($value, $ang_a, $ang_b)
{
    $n = (360 + ($value % 360)) % 360;
    $a = (3600000 + $ang_a) % 360;
    $b = (3600000 + $ang_b) % 360;

    return ($a < $b) ? ($a <= $n && $n <= $b) : ($a <= $n || $n <= $b);
}

但是我如何在 SQL 中执行此操作?我当然在尝试这个

SELECT ... WHERE angle BETWEEN X AND Y 

但是我使用的是“角度公差”,这个例子在这种情况下当然不起作用:

angle = 355;
x = (angle - 10)
y = (angle + 10);

SELECT * FROM ... WHERE angle BETWEEN 345 AND 5

// 5° cause 355°+10° = 365° = 5°

当然不是介于两者之间,而是...

顺便说一句:angle_between(355, 345, 5);//真

最佳答案

您必须将范围分成两个范围,然后检查:

SELECT * FROM ... WHERE angle BETWEEN 345 AND 360
   OR angle BETWEEN 0 AND 5;

关于php - MYSQL - 计算一个角度是否在两个角度之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412269/

相关文章:

php - 聪明人/PHP : Why is it not possible to use two foreach loops in one table with Smarty?

java - 代码来知道文件是否已下载

javascript - 动态获取查询值并在按钮单击 PHP 时触发

php - 使用哪个,concat,concat_ws?在 mysql 中

java - 类似于 Golang 中 Spring Data JPA 的框架

使用时间戳进行mysql日期比较返回错误答案

PHP、CURL、WebDAV 和 SEARCH 方法

PHP - 电子商务系统或 CMS 的骨架

mysql - 使用 MySQL 有效计算哪些点接近给定纬度/经度的最佳方法是什么?

Mysql 在 select 语句中设置局部变量并仅通过一个查询返回相同的 select 输出