2011-12-25 3 views
2

stackoverflow 검색 및 내 질문에 대한 대답을 가지고 있지만 내 코드로 구현하려고 할 때 이상한 오류가 발생했습니다. 나는 다음과 같은 오류 얻을큰 원 계산에 대한 SQL 오류

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

필드에 NULL을 사용할 수 있습니까? 함수에 전달 된 null 값이이 오류를 반환 할 수 있다고 생각합니다. – Sparky

+0

쉘 스크립트에서 실행 되었습니까? '위도'와 '위도'둘 다 값이 주어 졌습니까? –

+0

예 값과 NULL 값 없음 – Grigor

답변

3

를 사용입니다 일반적으로 각도 인수를 라디안 함수에 전달하여 각도 값의 소수 부분에서 전체 숫자를 구분하는 쉼표로 인해 발생합니다.

53779도 경도 4566도는 라디안 함수에

이 (쉼표로 구분) 두 개의 인수처럼 보이는 위도 그것을 당신이 볼 수있는 오류가 발생합니다.

해결책은 쉼표 대신 구분 기호로 마침표를 사용하여 학위 인수를 형식을 지정하기 위해 일부를 수정하는 것입니다.

관련 문제