mysql カラムの暗黙的な変更
この記事を読んだ時、ガビーン!と衝撃を受け、こんな大事な事を知らないで使っていた自分に驚きました。
でもちょっとテストしてみたら検索では特に問題は起きなそうな気がしてきました。
+---------+-------------------------
| Table | Create Table
+---------+-------------------------
| address | CREATE TABLE `address` (
`zip1` char(3) default NULL,
`zip2` varchar(4) default NULL,
`address` text
) TYPE=MyISAM |
+---------+-------------------------
1 row in set (0.00 sec)
というテーブルで
insert into address values('35',NULL,'埼玉');
というデータを入れると
実際は zip1がchar(3) なので 35[スペース] というデータになるけど、
select * from address where zip1 = '35';
というsqlを発行しても 上記のデータは取り出せる。
スペースは無視されるのか?
関係ないけど以前postgres で char型を扱った時は上記のsqlだとヒットしなかった気がするのだけど、今の7.x で試してみたらヒットするみたい。
なんか問題なさそうと思いかけたんだけど、取り出した値に 空白がついてくるのか?
やっぱりもうちょっと調べてみよう。
コメントする