大圆计算的SQL错误

时间:2011-12-25 17:57:29

标签: sql great-circle radians

我正在搜索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 个答案:

答案 0 :(得分:3)

从我发现的链接中,这通常是由度数参数传递给弧度函数引起的,用逗号分隔整数与度数值的小数部分。

经度53,779度 纬度4,566度

这看起来像两个参数(用逗号分隔)到弧度函数,它会抛出你看到的错误。

解决方案是进行一些动态修改,以使用句点作为分隔符而不是逗号来格式化学位参数。