我的用戶表當前有一個字段sex
,它可以是1或2.我希望將這些值轉換爲「F」或「M」並將它們放入不同的列中。有沒有辦法在mySQL中做到這一點?將整數列轉換爲mySQL中的字符
我可以在控制檯中編寫Ruby代碼來完成這個任務,但我已經有了100K用戶的訂單,並且不想在我循環時停止生產。
我的用戶表當前有一個字段sex
,它可以是1或2.我希望將這些值轉換爲「F」或「M」並將它們放入不同的列中。有沒有辦法在mySQL中做到這一點?將整數列轉換爲mySQL中的字符
我可以在控制檯中編寫Ruby代碼來完成這個任務,但我已經有了100K用戶的訂單,並且不想在我循環時停止生產。
查詢:
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);
你可以做到這一點在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
後者是否工作,如果性別列是類型整數? – rainslg
最後一個是如果您不想在表中添加另一列並使用select可以修改和顯示,但該列仍將包含「1或2」,但通過查詢顯示時將顯示「M或F」 –
您可以使用CASE WHEN' –
您的意思是您想要在表中添加額外的列,或者您只是想在查詢現有表時獲得F/M。 – PaulF
我有一個新的列應該包含F/M,而原始列包含1/2 – rainslg