2016-06-28 11 views
0

My MySQLテーブルにはword1とword2の2つのカラム(大文字と小文字を区別しない)と照合順序utf8_binがあります。大文字と小文字を区別しない選択と一意のインデックスを持つMySQLテーブル

Word1は 'basketball'または 'Basketball'または 'BASKETBALL'にすることができます。

(バスケットボール、ゲーム)AND(バスケットボール、ゲーム)はどち​​らもテーブルに行として存在します。

たとえば、行(バスケットボール、ゲーム)が存在するため、テーブルへの挿入(バスケットボール、ゲーム)が拒否されるなど、重複行が挿入されないようにword1、word2にユニークなインデックスを使用します。

SELECTは大文字と小文字を区別し、 'utf8_bin'の照合を削除すると重複したエントリエラーが発生するという問題があります。

「バスケットボール」と「バスケットボール」の両方の行で大文字と小文字を区別しないようにするにはどうすればよいですか?

答えて

1

あなたはCOLLATE keywordで使用する照合順序を指定することができ、例えば

select * from mytable where word1 = 'baseball' collate utf8_general_ci 
+0

COLLATEは、イン​​デックスを使用してから、クエリを防ぎ、より良い方法はありますか? – user2827214

+0

大文字と小文字を区別しない照合順序で列を作成し、そのインデックスを付けることができます。 – Joni

関連する問題