로드 지점과 배달 지점 사이의 반지름을 계산 중입니다.mysql 쿼리에 알 수없는 열 오류가 발생했습니다.
내가 그것을하지만 나에게주는 오류에 대한 쿼리를 만들었습니다 :
는알 수없는 열 Distance1 (거리 1) 여기
쿼리입니다 : 쿼리 아래
SELECT ((Acos(Sin('49.4634' * Pi()/180) * Sin(
`locationlatitudestart` * Pi()/180)
+
Cos(
'49.4634' * Pi()/180) * Cos(
`locationlatitudestart` * Pi()
/
180) * Cos((
'3.54404' - `locationlongitudestart`) * Pi()/
180)) *
180/Pi()) * 60 * 1.1515) AS distance1,
((Acos(Sin('48.8637' * Pi()/180) * Sin(
`locationlatitudeend` * Pi()/180) +
Cos
(
'48.8637' * Pi()/180) * Cos(
`locationlatitudeend` * Pi()/180) *
Cos
((
'2.36109' - `locationlongitudeend`) * Pi()/180)) *
180/Pi
()
) * 60 * 1.1515) AS distance2,
((Acos(Sin('49.4634' * Pi()/180) * Sin(
`locationlatitudeend` * Pi()/180) +
Cos
(
'49.4634' * Pi()/180) * Cos(
`locationlatitudeend` * Pi()/180) *
Cos
((
'3.54404' - `locationlongitudeend`) * Pi()/180)) *
180/Pi
()
) * 60 * 1.1515) AS distance3,
((Acos(Sin('48.8637' * Pi()/180) * Sin(
`locationlatitudestart` * Pi()/180)
+
Cos(
'48.8637' * Pi()/180) * Cos(`locationlatitudestart` * Pi()
/180)
*
Cos((
'2.36109' - `locationlongitudestart`) * Pi()/180)) *
180/
Pi
()) * 60 * 1.1515) AS distance4
FROM instant_quotes
WHERE distance1 <= locationradiusstart
AND distance2 <= locationradiusend
OR distance3 <= locationradiusend
AND distance3 <= locationradiusstart
내 코드 들여 쓰기 주셔서 감사합니다. –
당신 ca 이런 식으로 WHERE와 함께 열 별칭을 사용하지 마십시오. HAVING 또는 하위 쿼리를 사용하거나 첫 번째 비트를 다시 인용하거나 거리를 계산하는 함수를 만드는 것이 좋습니다. – Strawberry
쿼리 전에 계산을 수행하지 않는 이유는 무엇입니까? 또는 저장 프로 시저를 사용합니까? – yoavmatchulsky