주제가 내가 시도하는 것을 적절하게 설명하는지 모르지만 여기에 상황이 있습니다. x, y 좌표 및 위치와 관련된 데이터베이스가 있습니다. 사용자가 x 및 y 좌표로 양식 데이터를 제출하고 근접 sqrt ((x1-x2)^2 + (y1-y2)^2)의 순서로 결과를 반환하게하고 싶습니다. 표시 할 결과 집합에 거리 수식을 적용하는 방법을 잘 모르겠습니다. 이 문제를 해결하는 방법에 대한 제안?거리 계산식을 기반으로 SQL 결과를 정렬하십시오.
0
A
답변
0
정말 그렇게 어렵지 않습니다. 근접 계산을 order by 절에 넣기 만하면됩니다. x 및 y 입력 값을 대체 할 수 있도록 SQL이 동적이어야합니다. 나는 계속 나아가서 근접도 계산을 선택 했으므로 정렬에 사용 된 값을 볼 수 있습니다.
선택 위치 SQRT ((X- {X 입력 값})^2 + (Y - {Y 입력 값})^2) SQRT 의해 근접성 위치에서
가
순서 ((X- {X 입력 값})^2 + (y- {y 입력 값})^2)
0
제곱근 함수가 단조 증가하므로 sqrt (a)가 sqrt (b)보다 큰 경우 a가 b보다 큽니다. SQL Dialect에서 SQRT를 사용할 수 없다면, 그냥 건너 뛸 수 있습니다 :
ORDER BY (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)
SQL 쿼리의 끝에 추가하십시오.