Veritabanları ve programlama dilleri üzerinde Türkçe karakter hep sıkıntı olmuştur bizler için. Ancak araştırarak elde edemeyeceğimiz yok arkadaşlar 🙂 Bu başlıkta, MySQL üzerinde Türkçe karakterlerimizi nasıl düzgün şekilde sıralayacağımızı göreceğiz.
Karakter Kodu Önemli
Yeni sürüm MySQL veritabanlarında karakter kodları var bildiğiniz üzere. Çoğu kişi için sıkıntı olduğu düşünülse de, aslında tam tersi 🙂 Karakter kodları sayesinde veritabanımız daha hızlı çalışıyor ve gördüğünüz bu tarzda sıralama işlemlerini başarıyla yapabiliyoruz.
Örnek veritabanı oluşturalım
Tamam, daha fazla tutmuyorum sizi. Hemen örnek bir veritabanı oluşturmanızı ve içerisini Türkçe karakterli kelimeler ile doldurmanızı istiyorum. Oluşturacağınız veritabanı evrensel olan utf8_general_ci karakter setine sahip olsun. Ve içerisine açacağınız tablo ve sütunlar da aynı özellikte olsun.
Hakan’ım o kadar uğraşamam, yap bir güzellik dersen de; al sana hazır bir veritabanı 🙂 Sql sorgunu çalıştır yeter. Veritabanından tablolara kadar oluşturulacaktır.
Türkçe karakter sıralama için örnek veritabanı indir
Mysql Türkçe karakter sıralama SQL sorgusu
İşte geldik en heyecan verici noktaya 🙂 Veritabanımız hazır ve sorgular için sizi bekliyor durumdaysa, buyurun birkaç SQL kodu 🙂
[SQL]SELECT *
FROM tablo
ORDER BY h collate utf8_turkish_ci ASC[/SQL]
[SQL]SELECT *
FROM tablo
ORDER BY h collate utf8_turkish_ci DESC[/SQL]
[SQL]SELECT *
FROM tablo
ORDER BY h3 collate utf8_turkish_ci ASC[/SQL]
[SQL]SELECT *
FROM tablo
ORDER BY h3 collate utf8_turkish_ci DESC[/SQL]
Geçmiş olsun 🙂
Sonuç
Veritabanı karakter setim utf8_general_ci olarak geçiyordu. Ancak sorgularımda bunu değil, utf8_turkish_ci setindeki karakterleri göz önünde bulundurmasını istedim MySQL ‘dan 🙂 O kadar.