Bir 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.
Bir cevap yazın