2016-08-01 132 views
0

我有兩組數據加入到一張表中。一個是美國地址,另一個是加拿大地址。我需要能夠按國家排序的選項。所以,我插入一個空白的國家列在我的表,我的表,現在看起來是這樣的:
如何基於同一表中的另一列數據填充一列?

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


我的狀態和郵政編碼的數據,但我的國家列爲空。由於美國郵政編碼格式爲5位數字(例如:12345),並可以壓縮的格式爲(前。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

相關問題