2016-08-07 10 views
1

mysqlでは、真と偽のために 'T'と 'F'を含むCHAR(1)列があります。私はこれを1つのSQL文で1と0のTINYINT(1)列に変換したいと思います。新しい列を作成せずにこれを行うにはどうすればよいですか?私はその後、 ブール型の列を整数に変換する

alter table my_table modify my_column tinyint; 

をすれば、私は自動変換が、私は列の型変更時の変換テーブルを指定することができますどのように0で置き換えられているすべての私の行になりますね?

答えて

3

1つのコマンドで?私は新しい列を作成せずにその可能性を疑う?あなたはこれを試すことができます。

次の2つのステップでそれを行うことができます - 最初の番号にすべてを変換し、列(未テスト)を変更してみてください:

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; 
関連する問題