纬度/经度MySQL查询产生错误(#1064)

时间:2014-01-24 19:07:10

标签: php mysql sin cos

我正在测试我在StackOverflow上找到的代码,它使用lat / long来根据距离以英里为单位获取行。使用此方法的所有问题和答案都没有解决我在数据库中运行此查询时遇到的问题。

SELECT *, ( 3959 * acos( cos( radians('42.3581') ) * cos( radians( lat ) ) * cos( radians( long ) - radians('-71.0636') ) + sin( radians('42.3581') ) * sin( radians( lat ) ) ) ) AS distance FROM geo_top_cities HAVING distance < 25 ORDER BY distance LIMIT 0 , 20

我收到的错误是:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'long ) - radians('-71.0636') ) + sin( radians('42.3581') ) * sin( radians( lat )' at line 1

我尝试在lat和long坐标周围使用单引号,没有单引号等。我甚至尝试删除括号中没有改变任何内容的空格。

1 个答案:

答案 0 :(得分:1)

long是MySQL中的reserved keyword。你需要用反引号包围它!