Ошибка SQL для вычисления большого круга - PullRequest
2 голосов
/ 25 декабря 2011

Я искал stackoverflow и получил ответ на мой вопрос, но когда я попытался реализовать его с помощью своего кода, я получил странные ошибки.

вот код:

SELECT `zip_code`, (6371 * acos(cos(radians($latitude)) * cos(radians(`lat`)) * cos(radians(`long`) - radians($longitude)) + sin(radians($latitude)) * sin(radians(`lat`)))) AS `distance`
FROM `places`
HAVING `distance` < $within
ORDER BY `distance` ASC
LIMIT 10;

Я получаю следующую ошибку:

Incorrect parameter count in the call to native function 'radians'

Я использую MySQL версии 5.1.44

1 Ответ

3 голосов
/ 25 декабря 2011

В найденных мною ссылках это обычно вызывается передачей аргументов степени в функцию radians с запятыми, отделяющими целое число от десятичной части значения степени.

53,779 градусов долготы 4566 градусов широты

Это похоже на два аргумента (разделенных запятой) для функции radians и выдает ошибку, которую вы видите.

Решение состоит в том, чтобы на лету внести некоторые изменения, чтобы отформатировать аргументы степени с точкой в ​​качестве разделителя вместо запятых.

...