[]
sql like komutu türkçe karakter problemi
Sorun şu ki sqlde like kullandığımda yıl ve yil kelimesini bir olarak görüyo ben yıl diye aratınca o yil olanı da getiriyo ne yapmalıyım?
collation'da ne kullanıyorsun?
utf8_genaral_ci kullanıyorsan öyle olması normal accent sensitive collation kullanman gerekiyor,
utf8_turkish_ci veya utf8_unicode_ci filan.
utf8_genaral_ci kullanıyorsan öyle olması normal accent sensitive collation kullanman gerekiyor,
utf8_turkish_ci veya utf8_unicode_ci filan.
- ocanal (14.02.13 00:09:31)
utf8_unicode_ci denedim problem yine aynı ama utf8_turkish_ci düzgün bir şekilde çalıştı. utf8_turkish_ci kullanılan alanda farklı bir karakter seti eklense. kril alfabesi gibi o zaman ne olucak?
- norek (14.02.13 10:05:07)
'yalnız "utf8_turkish_ci" kullanılan alanda farklı bir karakter seti eklense'
eğer karakterlerin bozulacağını eklenmeyeceğini düşünüyorsan öyle değil, çünkü burada konuştuğumuz collation(karşılaştırma) alanı, tablonun zaten kendi karakter seti vardır muhtemelen utf8 kullanıyorsun. o yüzden kiril alfabasi harfleri de sorunsuz eklenir. colattion değeri sadece aramayı-sıralamayı etkileyen bir değer.
utf8_turkish_ci aramalar türkçe harflere duyarlı olsun demek oluyor, utf8_bin yaparsan bu sefer binary olarak kaşılaştırır, yani karakterin ne olduğu önemli olmaz, birebir eşitlik arar.
eğer sitede aramalar çok dilli olacaksa o zaman utf8_bin kullan kökten çözmesi lazım.
eğer karakterlerin bozulacağını eklenmeyeceğini düşünüyorsan öyle değil, çünkü burada konuştuğumuz collation(karşılaştırma) alanı, tablonun zaten kendi karakter seti vardır muhtemelen utf8 kullanıyorsun. o yüzden kiril alfabasi harfleri de sorunsuz eklenir. colattion değeri sadece aramayı-sıralamayı etkileyen bir değer.
utf8_turkish_ci aramalar türkçe harflere duyarlı olsun demek oluyor, utf8_bin yaparsan bu sefer binary olarak kaşılaştırır, yani karakterin ne olduğu önemli olmaz, birebir eşitlik arar.
eğer sitede aramalar çok dilli olacaksa o zaman utf8_bin kullan kökten çözmesi lazım.
- ocanal (14.02.13 11:30:09)
utf8_bin istediğim sonucu veriyor ama büyük küçük harfe duyarlı.Bunu nasıl aramalarda kaldırabilirim?
- norek (14.02.13 12:18:33)
dediğim gibi utf8_bin doğrudan binary eşitliğe bakıyor haliyle büyük küçük harf duyarlılığı normal.
bunu aşmak için arama yapmadan önce arama yaptığın sütunu lower ile küçültmeyi deneyebilirsin. tabii burada lower bütün dillerde %100 doğrulukla çalışır mı bilmiyorum(sanmıyorum).
select * from hede where lower(hödö) like '%büdü%'
bunu aşmak için arama yapmadan önce arama yaptığın sütunu lower ile küçültmeyi deneyebilirsin. tabii burada lower bütün dillerde %100 doğrulukla çalışır mı bilmiyorum(sanmıyorum).
select * from hede where lower(hödö) like '%büdü%'
- ocanal (14.02.13 12:52:05 ~ 12:53:13)
1