Server/Database

[MySQL] MySQL에서 위도, 경도로 거리 계산하기

aeeazip 2023. 2. 8. 02:08

지도에서 현재 위치 기준으로 위도(latitude), 경도(longitude)를 추출해서 근방 1km 이내에 해당하는 결과를 얻고 싶을 때

 


예시) Post 테이블

 

title latitude (위도) longitude (경도)
떡볶이 시킬 분 50.02 127.021
연어 덮밥 시킬 분 60.21 130.214
피자 시킬 분 45.63 175.246

 

 

> SELECT   *, (6371*acos(cos(radians(현재 위도))*cos(radians(latitude))*cos(radians(longitude)-radians(현재 경      도))+sin(radians(현재 위도))*sin(radians(latitude)))) AS distance 
> FROM   Post
> HAVING   distance <= 1
> ORDER BY   distance asc limit 20


반경 2km 이내로 변경하고 싶을 땐 having절의 distance 조건을 2로 변경하면 된다.