2015-12-02 24 views
0

我的用戶表當前有一個字段sex,它可以是1或2.我希望將這些值轉換爲「F」或「M」並將它們放入不同的列中。有沒有辦法在mySQL中做到這一點?將整數列轉換爲mySQL中的字符

我可以在控制檯中編寫Ruby代碼來完成這個任務,但我已經有了100K用戶的訂單,並且不想在我循環時停止生產。

+0

您可以使用CASE WHEN' –

+0

您的意思是您想要在表中添加額外的列,或者您只是想在查詢現有表時獲得F/M。 – PaulF

+0

我有一個新的列應該包含F/M,而原始列包含1/2 – rainslg

回答

0

查詢:

UPDATE tbl_name SET sex = (CASE WHEN sex = 1 THEN 'M' WHEN sex = 2 THEN 'F' ELSE '' END); 

添加額外的列名稱爲gender則:

UPDATE tbl_name SET gender = (CASE WHEN sex = 1 THEN 'M' WHEN sex = 2 THEN 'F' ELSE '' END); 
1

你可以做到這一點在3個步驟

第1步 添加一個新列進入表

alter table table_name add column sex_n char(1);

第2步 寫一個更新查詢

update table_name 
set sex_n = case when sex = 1 then 'M' else 'F' end ; 

第3步 驗證數據是否正確填充然後做

alter table table_name drop column sex 
alter table table_name change sex_n sex char(1); 

如果你不想一個額外的列你可以用select來轉換爲

select 
case when sex=1 then 'M' 
else 'F' 
end as sex 
from table_name 
+0

後者是否工作,如果性別列是類型整數? – rainslg

+1

最後一個是如果您不想在表中添加另一列並使用select可以修改和顯示,但該列仍將包含「1或2」,但通過查詢顯示時將顯示「M或F」 –