2016-08-01 2 views
0

나는 하나의 테이블에 합쳐진 두 세트의 데이터를 가지고있다. 하나는 미국 주소 였고 다른 하나는 캐나다 주소였습니다. 국가별로 정렬 할 수있는 옵션이 필요합니다. 그래서 난 내 테이블에 빈 국가 열을 삽입 내 테이블은 다음과 같습니다
같은 테이블의 다른 열 데이터를 기반으로 한 열 채우기 방법?

state | country | zip 
----------------------- 
     |   | 
     |   | 


나는 국가와 우편 번호 데이터를 가지고 있지만 우리 나라의 열이 비어 있습니다. 미국 (. 예 : 12345) 코드 형식은 5 자리입니다 압축과 같은 형식이 압축 CAN (예. G5Y 5S7을)은 일종의 국가 데이터를 채울 수 MySQL은 가능합니다 ...

UPDATE table 
SET country = US 
WHERE zip (LIKE or =) (US zip format); 

을하기 때문에 그리고 다시 돌아가 어떤 종류의 WHERE zip LIKE NULL을 사용하여 나머지 국가 데이터를 CAN으로 채 웁니까?

감사

답변

2

당신은 zip 열에서 값의 길이를 확인할 수 있습니다.

다음
UPDATE table 
    set country = 'US' 
where char_length(zip) = 5; 

: - 한 가지 또는, ​​-

UPDATE table 
    set country = 'CAN' 
where country is null 

UPDATE table t 
    set country = 
    (case when char_length(t.zip) = 5 
    then 'US' 
    else 'CAN' 
    end); 
+0

그게 내가 찾던 정확히 무엇이고, 당신에게 @Daniel 감사드립니다. 그것은 완벽하게 작동했습니다! 어느 날 저의 수행 능력이 저의 이론을 따라 잡을 것입니다. 권자 – zcleft

관련 문제