정보
[MySQL] 위도 경도로 해당범위의 정보 가져오기
dosona
2019. 8. 31. 13:43
SELECT 가져올컬럼,
(6371*acos(cos(radians(nowlatitude))*cos(radians(setlatitude))*cos(radians(sethardness)
-radians(nowhardness))+sin(radians(nowlatitude))*sin(radians(setlatitude))))
AS distance
FROM 대상테이블
HAVING distance <= 거리
ORDER BY distance
nowlatitude 는 위도
nowhardness는 경도
selatitude 는 db의 위도 컬럼
sethardness는 db의 경도 컬럼을 삽입하면된다.
나의 경우 다음과 같이 사용했다.
$lat,$lng 으로 데이터를 받고 해당하는 정보들을 return해주었다.
SELECT *,
(6371*acos(cos(radians($lat))*cos(radians(lat))*cos(radians(lng)
-radians($lng))+sin(radians($lat))*sin(radians(lat))))
AS distance
FROM v2_care
HAVING distance <= 3
ORDER BY distance
LIMIT 0,100