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