2016-08-01 5 views
0

私は1つのテーブルに2つのデータセットを結合しました。 1つは米国の住所で、もう1つはカナダの住所でした。国別に並べ替えることができるオプションが必要です。だから、私はテーブルに空白の国の列を挿入し、私のテーブルには、次のようになります。
同じテーブル内の別の列データに基づいて1つの列を作成する方法

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


私は状態と郵便番号のデータを持っていますが、私の国の列が空です。米国の郵便番号の形式は、5桁の数字(例:12345)およびZIP CANは(例。G5Y 5S7)のようにフォーマットされているので

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

...のいくつかの並べ替えと国のデータを移入するためにMySQLでそれが可能であり、その後、何らかの種類の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

関連する問題