2014-01-24 65 views
1

我正在測試我在StackOverflow上找到的代碼,該代碼使用緯度/經度來獲取基於距離(英里)的行。所有使用此方法的問題和解答都不能解決我在數據庫中運行此查詢時遇到的問題。經緯度MySQL查詢產生錯誤(#1064)

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 

我曾嘗試這並沒有改變任何東西。

回答

1

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

+1

我有一種感覺,這是一件那麼明顯。謝謝! – NotJay