MySQL запрос возврата ошибок - PullRequest
0 голосов
/ 22 июня 2011

Я пытаюсь получить координаты и местоположения из базы данных, но мой сервер возвращает эту ошибку:

Error: 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(0) ) + sin( radians(0) ) * sin( radians( lat ) ) ) ) AS distanc' 
 at line 1

Query: 
SELECT id, 
    address, 
    name, 
    (3959 * acos(cos(radians(0)) * 
           cos(radians(lat)) * 
           cos(radians(long) - radians(0)) + 
           sin(radians(0)) * 
           sin(radians(lat)))
    ) AS distance 
FROM places 
HAVING distance < 10 
ORDER BY distance 
LIMIT 0, 20;

Должен ли я избегать "lat" и "long" с помощью `, или эта формула неверна вообще? Спасибо.

Кроме того, я использую координаты 0, 0 (только для целей тестирования).

Ответы [ 3 ]

2 голосов
/ 22 июня 2011

LONG - зарезервированное слово в mysql. Избегайте использования обратных кавычек при использовании его в качестве имени столбца.

1 голос
/ 22 июня 2011

Заменить оператор HAVING на оператор "WHERE".Там нет "GROUP BY", то почему вы используете HAVING?

0 голосов
/ 22 июня 2011

Я думаю, у вас есть дополнительные ).Попробуйте это

SELECT id, address, name, ( 3959 * acos( cos( radians(0) ) * cos( radians( lat ) ) * cos( radians( long ) - radians(0) ) + sin( radians(0) ) * sin( radians( lat ) ) ) AS distance FROM places HAVING distance < 10 ORDER BY distance LIMIT 0 , 20;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...