MySQLのunique属性で大文字や小文字が区別されない問題を解決
presented by 役に立つかもしれないBlog
MySQLで重複しないデータを登録するためのフィールド属性として「UNIQUE」があります。
確かに日本語データでは問題ないのですが、半角アルファベットで「ABC」のデータがある状態で新たに「abc」を登録しようとすると次のように「Duplicate entry」エラーが出ます。
Duplicate entry 'abc' for key 2
これをエラーが出ないように登録するためには、フィールドにBINARY属性を付与することで回避することができます。 テーブル名を「my_table」、フィールドをVARCHAR型で「my_field」とした場合の例です。
ALTER TABLE `my_table` MODIFY `my_field` VARCHAR(255) BINARY;
新しくテーブルを作成する段階でBINARY属性をつけるには次のようにします。
CREATE TABLE `my_table` ( `my_field` VARCHAR(255) BINARY );
これでちゃんとアルファベットの大文字と小文字を区別してくれるようになりますよ!
このページに関連のある記事はこちら
- MySQLサーバーでクエリ履歴をログファイルに保存する方法
- MySQLで「ALTER TABLE ... DROP INDEX」すると「Error 150」が出る問題
- タグ機能を実現するための便利なデータベース設計を3つ紹介
- さくらのVPSのPHP+MySQLを最新のものにアップデート。
- JavaScriptでDATETIME型の日付を得る方法
- MySQL(innoDB)でリレーション設定時に「インデックスは設定されていません」エラー
- MySQLでRANDOMな数値を得る方法
- MySQLの「Can't create/write to file '/tmp/#sql****.MYI'」エラーを解決する!
- MySQLで画像を格納時にエラーが発生する3つの要注意ポイント
- MySQLでHAVING指定したら「Unknown column ... in 'having clause'」エラー



コメントフォーム