mysqlBir karakter katarının (string) uzunluğunu ölçen fonksiyonları gerek veritabanı sorgularında gerek programlamada sıkça kullanırız. Örneğin MS Access’te (ve muhtemelen MS SQL Server’da) bu işi LEN fonksiyonu yaparken aynı işi MySQL’de yapan fonksiyonun adı LENGTH. Ancak bu fonksiyon tablonuzun karakter kodlaması UTF-8 olsa bile Türkçe karakterlerde aşağıdaki gibi bir sorun veriyor. Örneğin tablomuz aşağıdaki gibi olsun:

 

 

kisi_no isim soyisim website kent
1 Harun Reşit Zafer hrzafer.com İstanbul
2 Derya Zaimoğlu dz.net Ankara
3 Meryem Arkadaş Kars
4 Emir Aydın biracayipadam.com Houston
5 Türkçe Çığöşü

 

 SELECT soyisim, LENGTH(soyisim) FROM kisiler

sorgusu aşağıdaki tabloyu döndürüyor.

soyisim LENGTH(soyisim)
Zafer 5
Zaimoğlu 9
Arkadaş 8
Aydın 6
Çığöşü 12

Farkettiğiniz gibi Türkçe karakterleri 2 sayıyor. Bu da göğsümüzü kabartıyor tabi. Ancak biz yine de doğru sonucu elde etmek istersek kullanmamız gereken fonksiyon CHAR_LENGTH .

 SELECT soyisim, CHAR_LENGTH(soyisim) FROM kisiler
soyisim CHAR_LENGTH(soyisim)
Zafer 5
Zaimoğlu 8
Arkadaş 7
Aydın 5
Çığöşü 6

Gördüğünüz gibi verilerin gerçek karakter sayılarına ulaşmış olduk.

Herkese kolay gelsin.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone