|
효율적이지 않지만 다양한 방법이 있습니다.
간단한 예로 참고만 하세요.
우선 '이름-주소-전화번호' 에서 '-'를 기준으로 주소를 추출합니다.
주소의 주소가 '서울시 송파구 문정동 42번지'라고 가정하면
공백을 기준으로 배열에 넣고 DB에 쿼리를 던지면 되겠지요.
그러나, 여기서 고려 사항은
기준에 되는 우편번호를 대응하는 주소가 '어떤 형태로 저장되어 있는가'입니다.
또한, 한번에 원하는 우편번호를 얻기 위해서 '송파구', '문정동', '42번지'로
세번의 쿼리를 던져야 하겠지요. 스토어드 프로시져로 속도를 향상시킬 수 있겠지요.
조금 더 설명을 드리면 DB에 주소1, 주소2의 형태로 저장되어 있다면
주소1: '서울시 송파구'
주소2: '문정동 42번지'
'...where 주소1 like '%송파구' and 주소2 = '문정동 42번지'으로 검색이 가능하겠지요.
여러가지 방법으로 시도해 보세요.
퍼포먼스에서 이런저런 차이가 날겁니다.
(문자열추출/우편번호검색을 스토어드 프로시져로 하는 방법도 고려해 보세요.)
PS) 정규식을 이용하는 방법도 있습니다.
C++에서는 Boost Library가 필요할 겁니다.
chang 님이 쓰신 글 :
: 기존 회원 주소록이 있습니다.
: "이름-주소-전화번호"와 같이 정리되어 있다고 가정할때...
:
: 위 주소데이타("서울시 송파구 문정동 42번지")를 검색어로 해서 우편번호를 검색하고자 하는데
: 여간 애매한 것이 아니네요...
:
: 시중에 보면 주소 데이타를 가지고 일괄 우편번호 검색하는 프로그램이 있는걸로 보아
: 분명 해결책은 있는거 같은데...
:
: 통상 우편번호를 검색하고자 하는 경우엔
: where dong like '문정%' 와 같이 해서 찾았지만 위의 경우처럼 전체 주소를 가지고
: 해당 우편번호를 찾아내는 것은 만만치가 않네요...
:
: 특히나 시작번지와 끝번지가 나뉘어 있는 경우엔
: "zip-sido-gugun-dong-ri-st_bunji-ed_bunji"와 같이 되어 있는데
: "138829 - 서울 - 송파구 - 문정도 - '' - 10 - 100 " 인 경우
: "서울 송파구 문정동 50번지" 라는 주소와 "서울 송파구 문정동 101번지"라는 주소를
: 어떻게 정확하게 찾을 수 있을까요?
:
: 게다가 "충북/충청남도"와 같이 표기법도 다른 경우가 있을 것이고, 띄어쓰기가 개판인 경우도
: 있을텐데 심플한 해결책이 없을까 문의 드립니다...^^
|