2013-03-05 17 views
10

MySQL için bir utf8_unicode_cs harmanlama olup olmadığını bilen var mı? Şimdiye kadar, aramalarım kurudu. Eğer henüz mevcut değilse, bir tane oluşturmak oldukça doğru mu? Ya da bir şekilde utf8_unicode_ci veya utf8_bin kullanın ama bir utf8_unicode_cs harmanlamasından ne beklenebilir?Bir utf8_unicode_cs harmanlaması var mı?

cevap

11

Aynı sorunla karşılaştım ve bazı Googling'lerden sonra, MySQL'in içermediği görülüyor. Için senin deyiminle

1) DB harf duyarlılığı sağlamak için, "Onu taklit":

  • sıkı seçer: SELECT "Joe"utf8_bin harmanlama
    Bu veriyor için tablo sütununu ayarlamak "joe"/"joE"/"jOe"/etc
  • katı UNIQUE diziniyle satırları döndürmeyecek: UNIQUE dizinine sahip bir sütun, farklılıkları farklı değerler olarak ele alacaktır. Örneğin, bir utf8_unicode_ci harmanlaması kullanılıyorsa, "joe" içeren bir tabloya "Joe" eklenmesi bir "Yinelenen anahtar" hatasını tetikleyecektir. Ut8_bin kullanılıyorsa, "Joe" eklenmesi iyi sonuç verecektir.

2) sonuçlarında doğru sıralamayı almak için: SQL sorgusuna harmanlama ekleyin:

SELECT ... ORDER BY column COLLATE utf8_unicode_ci