php - 子查询计算错误?

标签 php mysql mysqli in-subquery

为什么这个查询不起作用?

$query = ("SELECT * FROM 
                (SELECT *, (
                (((endingLatitude - " . $h . ")(endingLatitude - " . $h . "))
                /" . pow($r1, 2) . ")
                 + 
                 ((endingLongitude - " . $k . ")(endingLongitude - " . $k . "))
                 /" . pow($r2, 2) . "
                 ) AS point2 
                FROM (SELECT *, ((
                (
                ((startingLatitude - " . $h . ")(startingLatitude - " . $h . "))
                /" . pow($r1, 2) . ") 
                + 
                ((startingLongitude - " . $k . ")(startingLongitude - " . $k . "))
                /" . pow($r2, 2) . ")) 
                AS point1 
                FROM (SELECT * FROM trips WHERE distance >='" . ($distance * .25) . "') as query1)
                 as query2) as query3 WHERE point1 <= 1 AND point2 <= 1 LIMIT 0 , 10;");

$result = mysqli_query($con, $query);

$h和$k分别是椭圆的x坐标和y坐标。我正在使用找到的公式 here计算两个点 (startingLat,startingLong) 和 (endingLat,endingLong) 是否在垂直高度为 $r1 和水平高度为 $r2 的椭圆内。我还将搜索的行限制为距离单元格值大于 $distance * .25 的行。

我认为这可能与括号错误有关,或者与我进行子查询/执行计算的方式有关。

使用

die(mysqli_error($con)); 

返回错误您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 3 行的 '(endingLatitude - 36.9564753))/796.842964388) + ((endingLongitud' 附近使用的正确语法

最佳答案

我相信你必须使用 Mysql 乘法算术运算符,*。 https://dev.mysql.com/doc/refman/5.0/en/arithmetic-functions.html#operator_times

代替:

(endingLatitude - " . $h . ")(endingLatitude - " . $h . ")

这样做...

(endingLatitude - " . $h . ") * (endingLatitude - " . $h . ")

关于php - 子查询计算错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521344/

相关文章:

PHP 和 MySQL 查询显示不显示

mysql - 使用相应的唯一 ID 从另一个表中的数据更新行

mysql - SQL:达到 unix 时间时如何删除一行?

mysql - 如何列出mongodb集合的属性?

php - 是否可以使用 Ajax 调用包含另一个 Ajax 的 php 脚本?

javascript - WAMP 上的 PHP 更喜欢相同的随机数组元素?

php - PayPal IPN 沙盒 - 更改通知 URL 不会更新

php - multi_query 在 mysqli 中无法通过 sphinxql 更新实时 sphinx 索引

php - 选择下一个现有的qID

php - 新的 mysqli() : how to intercept an 'unable to connect' error?