CHAR型を扱う際の注意点
CHAR型を使用し、データを格納すると下記のような状況に陥ることがあります。
上記では、CHAR型の4桁で設定しているにも関わらず2ケタしか表示されていません。
※CONCAT(A,B)はAとBの文字列を結合するという関数です。
従って、実際のデータは「12」の2桁となっています。
これはなぜ起こったのか?
答えはDBの設定ファイル(my.cnf)に設定不足があるからです。
下記オプションを[mysqld]セクションに追加しましょう。
sql-mode="PAD_CHAR_TO_FULL_LENGTH"
/etc/init.d/mysqld restart
再度、検索をかけると下記のようになります。
正常にスペースまで出ています。
上記はCHAR型でデータを格納し、スペースが埋まるのは内部でやってくれているのですが、
設定ファイルに設定不足があるとテーブルからデータを取得し、画面に表示する際に
MariaDBがスペースを取り除いてしまうため、発生した事象です。
※詳細は下記ページを参照(MySQLの公式サイト)
http://dev.mysql.com/doc/refman/5.1-olh/ja/char.html
次回はINDEXについて記載する予定です。
WEBアプリケーション関連 人気連載リンク
データベースの基礎が学べるSQL基礎講座
SQL基礎 連載
より実践的なWEBアプリ開発講座!Bootstrap活用を学ぶなら・・
魁!小野の塾 連載