私はSFについてよく似た質問があることを知っていますが、私は私のことは新しい質問を保証するのに十分だと思います。私はutf8_unicode_ciでutf8として単一の列を持つテーブルを持っています。また、この列には固有のキーがあり、言語コードを示す別の列もあります。この列のデータは、さまざまなスクリプト(ラテン語、さまざまなアクセント、中国語、ロシア語など)にあります。MySQLの大文字と小文字は区別されますがアクセントに敏感なUTF8の一意のキー
問題は、時々、発音区別記号(スペイン語のanoとaño)だけ異なる異なる意味の2つの単語を入力したいと思うことです。 utf8_unicode_ciは大文字と小文字を区別しないため、これらは同じだと思って入力します。それは吸う。理想的には、列全体をある種の照合(大文字と小文字を区別しないでアクセントに敏感です)に切り替えるだけですが、それは存在しないようです。多くの異なるものがこの列を使用していますので、大文字と小文字を区別することを恐れて、列のデフォルトの照合順序をutf8_binに変更しないでください。
だから、私は、この列をヒットする多くの既存のクエリでデフォルトの大文字と小文字の区別に影響を及ぼさない解決策が必要だと思いますが、分音記号だけが異なる単語を追加できます。アイデア?もし私がする必要があれば、私はユニークなキー制約をutf8_binに切り替えるでしょう。
一部の大文字には、同等の小文字はありません。いくつかは同等の複数の小文字を持っています。それは混乱のようなものです。 –