将布尔列转换为整数

时间:2016-08-07 13:21:12

标签: mysql sql type-conversion

在mysql中我有一个包含' T'的CHAR(1)列。和' F'对于真与假。我想在单个SQL语句中将其转换为1和0的TINYINT(1)列。如何在不创建新列的情况下执行此操作?如果我做

alter table my_table modify my_column tinyint;

然后我假设自动转换将导致我的所有行都被替换为0.如何在列类型修改期间指定转换表?

1 个答案:

答案 0 :(得分:4)

用一个命令?我怀疑它可能,没有创建一个新的列?你可以试试这个:

您可以分两步完成 - 首先将所有内容转换为数字,然后尝试修改列(未经测试):

UPDATE my_table t
SET t.my_column = CASE WHEN t.my_column = 'T' THEN '1'
                                              ELSE '0'
                  END;

alter table my_table modify my_column tinyint;