2013-03-05 8 views
10

MySQLのutf8_unicode_cs照合が存在するかどうかは知りませんか?これまでのところ、私の検索は乾燥してしまった。まだ存在しないのであれば、それを作成するのはかなり単純ですか?または、何とかutf8_unicode_ciまたはutf8_binを使用しますが、utf8_unicode_csの照合で期待されるものを「シミュレート」しますか?utf8_unicode_cs照合は存在しますか?

答えて

11

私は同じ問題を抱え、いくつかのグーグルでは、MySQLには含まれていないようです。あなたがそれを置くよう

1)はDBで大文字と小文字の区別を確実にするために、「それをシミュレートする」:

  • 厳しい選択します:SELECT "Joe"utf8_bin照合
    これが可能ににテーブル列を設定
  • 厳密な一意索引:UNIQUE索引を持つ列は、大文字と小文字の違いを異なる値として扱います。たとえば、utf8_unicode_ciの照合が使用されている場合、すでに「joe」があるテーブルに「Joe」を挿入すると、「Duplicate key」エラーが発生します。 ut8_binが使用されている場合、 "Joe"を挿入するとうまく動作します。

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

SELECT ... ORDER BY column COLLATE utf8_unicode_ci 
関連する問題