12

MySQL の utf8_unicode_cs 照合が存在するかどうかは誰にもわかりませんか? これまでのところ、私の検索は枯渇しています。まだ存在しない場合、作成するのはかなり簡単ですか? または、どういうわけか utf8_unicode_ci または utf8_bin を使用しますが、utf8_unicode_cs 照合から期待されるものを「シミュレート」しますか?

4

2 に答える 2

12

同じ問題に遭遇しましたが、グーグルで調べたところ、MySQL には含まれていないようです。あなたが言うように、「それをシミュレートする」には、

1) DB で大文字と小文字を区別するには、テーブルの列をutf8_bin照合
に設定します。これにより、次のことが可能になります。

  • 厳密な SELECT: SELECT "Joe""joe" / "joE" / "jOe" などを含む行は返されません
  • 厳密な UNIQUE インデックス: UNIQUE インデックスを持つ列は、大文字と小文字の違いを異なる値として扱います。たとえば、utf8_unicode_ci 照合順序が使用されている場合、既に "joe" があるテーブルに "Joe" を挿入すると、"Duplicate key" エラーが発生します。ut8_bin を使用する場合、"Joe" を挿入すると問題なく動作します。

2)結果で適切な順序を取得するには: 照合を SQL クエリに追加します。

SELECT ... ORDER BY column COLLATE utf8_unicode_ci
于 2013-04-10T03:26:20.953 に答える