【问题标题】:Convert boolean column to integer将布尔列转换为整数
【发布时间】:2016-08-07 13:21:11
【问题描述】:

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

alter table my_table modify my_column tinyint;

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

【问题讨论】:

    标签: mysql sql type-conversion


    【解决方案1】:

    一个命令?我怀疑它是否可能,而不创建新列?你可以试试这个:

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

    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;
    

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 1970-01-01
      • 2020-06-26
      • 2013-02-09
      • 1970-01-01
      • 2013-12-03
      • 2014-09-03
      • 1970-01-01
      • 2011-12-10
      相关资源
      最近更新 更多