MySQLのint(整数)型で 0始まりのデータを許容する

郵便番号などのコードの場合、0で始まる数字のデータってのがあり得るわけです。でも普通にintにすると、「012」の入力が「12」として保存されてしまう。これでは困る。

じゃあってんで諦めて「text」とか「varchar」にすると、保存できるようにはなるんですけど、検索パフォーマンスが落ちるのでオススメはしない。

広告

そこで表題の件の解決策。

型は「int」のまま、属性で「UNSIGNED ZEROFILL」を指定する。

ALTER TABLE `codetable` CHANGE `code` `code` INT(11) UNSIGNED ZEROFILL NOT NULL;

これで0始まりの数字が保存できるようになりました。

phpMyAdminでも設定可能

About: dacelo


Leave a Reply

Your email address will not be published. Required fields are marked *