2016-08-01 133 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

相关问题