[英]Converting an integer column to a character in mySQL
我的用户表当前的字段sex
为1或2。我想将这些值转换为“ F”或“ M”,然后将它们放入其他列中。 有什么办法可以在MySQL中做到这一点?
我可以在控制台中编写Ruby代码来执行此操作,但是我有10万个用户,并且不想在循环时停止生产。
您可以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
查询:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.