2

我正在搜索 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

4

1 回答 1

3

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

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

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

解决方案是进行一些即时修改,以使用句点作为分隔符而不是逗号来格式化您的度数参数。

于 2011-12-25T19:28:34.237 回答