質問: varchar(m)のmは文字数ですかバイト数ですか? os:ターボlinuxです。 varchar属性にvarchar(10)と指定すると10文字入ると思っていたのですが、全角で入力すると5文字、半角で10文字でした。 マニュアル6.2のカラム型によると、 m の範囲は 0 〜 255 文字とあります。 tinyblob , tinytext は最大長が 255(2^8 - 1)文字 blob , textは 最大長が 65535(2^16 - 1)文字 mediumblob , mediumtextは 最大長が 16777215(2^24 - 1)文字 そして longblob , longtext は最大長が 4294967295 または 4g(2^32 - 1)バイト となっています。 longだけが「バイト」という表現、それ以外はvarcharも含めて文字数という表現なので、当然文字数でカウントしていると思っていたので完全に計算が狂いました。 これはマニュアルが間違えているのでしょうか? それとも、文字コードによって変わるのでしょうか? その場合、どの文字コードがバイト換算でどの文字コードが文字数換算なのでしょうか? また、mysqlでどの文字コードが使用されているかどこを見れば分かるのですか? となたかご教授下さい。
回答: 文字数というのは、半角文字(1バイト文字)を基本に考えて解説がされていると思います。マニュアルに間違いは無いと思います。 日本語を使うのであれば、倍の領域を確保することを考えてデータベースを作らないといけません。 参考url:http://www.pc-view.net/help/manual/0082.html