2014-01-24 7 views
1

Я тестирую код, который я нашел в StackOverflow, который использует lat/long для получения строк на основе расстояния в милях. Все вопросы и ответы, которые используют этот метод, не затрагивают проблему, возникающую у меня при запуске этого запроса в моей базе данных.Локатор/Долгота MySQL Query Producing Error (# 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 является reserved keyword в MySQL. Вы должны окружить его в backticks!

+1

У меня было ощущение, что это было нечто очевидное. Спасибо! – NotJay