我正在搜索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
答案 0 :(得分:3)
从我发现的链接中,这通常是由度数参数传递给弧度函数引起的,用逗号分隔整数与度数值的小数部分。
经度53,779度 纬度4,566度这看起来像两个参数(用逗号分隔)到弧度函数,它会抛出你看到的错误。
解决方案是进行一些动态修改,以使用句点作为分隔符而不是逗号来格式化学位参数。