현재 위치(경도,위도) 기반으로 범위 내 데이터를 구해야 할 이슈가 생겼다. 예시 - 현재 위치 37.579651 (Latitude) 126.977041 (Longitude) - DB 정보 table : locationMap 위도 : MAPX_LAT 경도 : MAPY_LON - 검색할 반경 : 20 = 20km (1km = 1) SELECT * FROM locationMap WHERE (6371*acos(cos(radians(37.579651))*cos(radians(MAPX_LAT))*cos(radians(MAPY_LON) - radians(126.977041))+sin(radians(37.579651))*sin(radians(MAPX_LAT)))) < 20 limit 0, 30 위처럼 쿼리를 날리면 ..
문법은 이러하다 insert into 테이블명(컬럼1, 컬럼2, ...) values (값1, 값2, ...) on duplicate key update 중복 시 처리 할 내용 insert 건에 대해 중복된 튜플이 있다면 해당 튜플을 update 하는 방법이다. insert into 테이블명(컬럼1, 컬럼2) values (값1, 값2) on duplicate key update 컬럼1 = 값3; 해당하는 테이블(컬럼1, 컬럼2)에 값1과 값2인 튜플이 없을 경우 insert 가 동작하고 테이블(컬럼1, 컬럼2)에 값1과 값2인 튜플이 있는 경우 update 가 동작하여 값1이 값3으로 수정된다. name 과 phone 을 가지는 tb_test 테이블이 있다고 생각해보자. insert into tb_te..
날짜 차이 계산을 위해 사용. 쓰는법- DATEDIFF(date1, date2);date1 값에서 date2 값을 뺀 날짜의 값을 반환. ex - select DATEDIFF("2016-05-10" , "2016-05-08"); // 결과값 - 2 참고사이트 : http://88240.tistory.com/225
웹에서 로컬 DB에 접근하는데컴퓨터를 껏다 켜거나 DB를 껏다 키면종종 불러오질 못할 때가 있었다.sql mode를 확인후에 설정하여 해결할 수 있었다. sql mode 변경 select @@GLOBAL.sql_mode;하면 그 값에 따라group by 에너가 날수 있다. set GLOBAL sql_mode='';로 설정하여 해결