• ベストアンサー

mysqlで大小文字区別の検索

SELECT field FROM data WHERE field = 'mixi' と検索すると'Mixi'が検索されます。'mixi'だけ検索するようにするにはどうすればよいでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

MySQLのデフォルトでは大文字・小文字を区別しない 検索を行なうようです。 今回の仕様を実現するには、  ・テーブル作成時に、当該カラムに binary 属性を加える、または  ・既存のテーブルを変更するために   alter table テーブル名 modify カラム名 属性 binary;   を実行する のいずれかの方法をとる必要があるようです。

Filette
質問者

お礼

ありがとうございます。 textタイプのフィールドにbinaryを加えるにはどうすればよいでしょうか。 CREATE TABLE data (field text binary); では構文エラーになりました。

その他の回答 (4)

  • mooboogie
  • ベストアンサー率68% (28/41)
回答No.5

SELECT field FROM data WHERE binary field = 'mixi'; です。

Filette
質問者

お礼

解決しました。ありがとうございました。

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.4

マニュアルによれば、select 実行時にBINARY 演算子で、ケース依存にしたカラムの比較が行えるとのことですけど。 http://dev.mysql.com/doc/refman/4.1/ja/case-sensitivity-operators.html http://dev.mysql.com/doc/refman/4.1/ja/string-comparison-functions.html http://dev.mysql.com/doc/refman/4.1/ja/cast-functions.html sql3.2.3以降とのこと

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.3

> CREATE TABLE data (field text binary); > では構文エラーになりました。 ちなみに、どういった構文エラーが出ましたか? 先ほどの私の回答と矛盾してしまうのですが、 私のところでは上記のcreateコマンドが正しく通りました。

Filette
質問者

お礼

解決しました。ありがとうございました。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.2

MySQLのサイトへ行って、マニュアルを確認してみました。 本当は、ご自身で行ってみていただきたいところでありますが…。 そうしますと、text系のカラムにはbinary属性がどうも付けられないように見えます。 charやvarcharならば付けられるのですけれど。

Filette
質問者

お礼

解決しました。ありがとうございました。

関連するQ&A