何かをより大きなサイズのデータ型からより小さなサイズのデータ型に変換したいのは、非正統的であり、潜在的に危険であることを私は知っています。ただし、この場合、列の値がBIGINT UNSIGNED列の最大サイズを超えることはほとんどありませんINT。
そこで、MySQL を使用して、テーブル構造を読み取っています。コラムを読んinformation_schema.columns.ordinal_positionでいるうちに、タイプであることがわかりBIGINT UNSIGNEDました。今、私はこれINTを私の処理目的の代わりにしたい. SQL で型をキャスト/変換したい。
CAST明らかにCONVERT、データ型の符号を変更することだけを許可します。
SELECT CAST(ordinal_position AS SIGNED)
FROM information_schema.columns
列を具体的に として返す必要がありますINT。たとえば、an の最大値で列を切り取り、INTその値を返します。
今のところ、値を元に戻した後でデータ型を変更します。しかし、SQLでそれを行う方法を知りたいです。