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?




 

www.huysuzadam.com

serafettinn

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.

ocanal

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

'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.

ocanal

utf8_bin istediğim sonucu veriyor ama büyük küçük harfe duyarlı.Bunu nasıl aramalarda kaldırabilirim?

norek

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ü%'

ocanal
1

mobil görünümden çık