mysql - 尝试查找距离内的记录时 SQL 语法错误

标签 mysql

我创建了一个过滤器,用户可以在其中查找特定点的选定英里数内的位置,

我的代码如下,我在“左连接”附近不断收到 SQL 语法错误

不确定错误是什么,如果有人可以提供帮助那就太好了,或者只是指出我正确的方向!

 SELECT b.*, host,
      (6371 *
          acos(
              cos( radians( '51.514294' ) ) *
              cos( radians( `latitude` ) ) *
              cos(
                  radians( `longitude` ) - radians( '-0.042857' )
              ) +
              sin(radians('51.514294')) *
              sin(radians(`latitude`))
          )
      ) `distance`

       FROM brunches b HAVING
        `distance` < $range
      LEFT JOIN hosts ON hosts.id = b.hostid

最佳答案

您的having子句放置在错误的位置(having子句不得放置在from和join之间)

SELECT b.*, host,
      (6371 *
          acos(
              cos( radians( '51.514294' ) ) *
              cos( radians( `latitude` ) ) *
              cos(
                  radians( `longitude` ) - radians( '-0.042857' )
              ) +
              sin(radians('51.514294')) *
              sin(radians(`latitude`))
          )
      ) `distance`

      FROM brunches b
      LEFT JOIN hosts ON hosts.id = b.hostid
      HAVING  `distance` < $range

关于mysql - 尝试查找距离内的记录时 SQL 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766480/

相关文章:

php - 使用多个 select 语句批量插入

MySQL 不允许我添加列

php - 手动获取从主要 WordPress 网站到 WordPress 博客的链接

mysql - 如何通过 SQL 查询从远程数据库中预设的记录集复制的现有输出中将列值替换为另一个列值

mysql - 与结果表连接

MySQL 跨不同数据库的 MERGE 表

php - 在 php while 循环中打印与一次相同的行

mysql - 如何使用 group by 子句对数据透视表 (MySQL) 中的列值进行小计

MYSQL 查询问题与更新

Python/PonyORM/MySQL - 使用多个 URL 参数进行查询