2011-03-20 11 views
5

Bir MySQL veritabanına bağlı bir Rails 3 uygulamasına sahibim. Kullanılan kodlama utf-8'dir. Veritabanı, İsveççe bir çok veriyi birbirine bağlar ve bir arama işlevine sahiptir.MySQL GİBİ ifadesi "o" ve "ö" kelimelerini aynı şekilde kullanıyor

gotland (İsveç adası) için arama yaptığımda, Östergötland (shire) sonuçları da döndürülür. Görünüşe göre MySQL, ö'u o olarak yorumlar.

location LIKE '%gotland%''un götland içeren alanları döndürmediğinden emin olmanın basit bir yolu var mı?

Şerefe.

cevap

8

COLLATE utf8_swedish_ci ifadesini LIKE ifadesinden sonra ekleyerek, istediğiniz şeyi alırsınız.

SELECT * FROM places WHERE name LIKE '%gotland%' COLLATE utf8_swedish_ci; 

Alternatif olarak, latin1_swedish_ci olup latin1 eğer karakter kümesi kullanmak isteyebilir.

Bu, LIKE deyimindeki karakter karşılaştırmasını düzelttiğinden% 100 emin değilim, ancak mantıklı olarak yapmalı.

Kaynaklar:

İlgili konular