지정된 범위 내에서 좌표를 선택하기 위한 MySQL 쿼리
데이터베이스에는 각각 위도가 다른 수많은 주소가 있습니다. 그리고 경도. Google Maps API를 사용하여 지정된 사용자 위치에서 반경 5마일 내의 주소만 지도에 표시하려고 합니다.
불필요하게 모든 기록을 검색하고 Java에서 거리 계산을 수행하는 것은 비효율적이므로, MySQL 쿼리 내에서 Haversine 공식을 활용해 보세요. 이 공식은 지구 표면의 두 지점 사이의 거리를 계산합니다. 수정된 쿼리는 다음과 같습니다.
<code class="sql">SELECT *, (3959 * acos(cos(radians(?)) * cos(radians(lat)) * cos(radians(lng) - radians(?)) + sin(radians(?)) * sin(radians(lat)))) AS distance FROM your_table HAVING distance < 5</code>
이 쿼리에서 물음표(?)를 사용자 위치의 위도 및 경도 값(Java 코드의 $lat 및 $lng)으로 바꿉니다. 거리 열에는 각 주소와 사용자 위치 사이의 거리가 저장됩니다.
이 쿼리를 사용하면 지정된 범위 내의 주소만 검색하므로 쿼리 성능이 최적화됩니다.
위 내용은 Haversine Formula를 사용하여 MySQL의 특정 범위 내의 주소를 효율적으로 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!