MySQL LENGTH() fonksiyonu

Açıklama
Belirlenen kolonun karakter uzunluğunu döndürür.

Örnek Kullanımı
Örneğin test tablosunda ad kolonu karakter uzunluklarını yazdıralım;

SELECT *, LENGTH(ad) as ad_uzunluk FROM `test`

şimdide bu uzunlukları 3’e eşit olanları listeleyelim sadece;

SELECT *, LENGTH(ad) as ad_uzunluk FROM `test`
HAVING ad_uzunluk = 3

Yayınlayan

Tayfun Erbilen

2009’dan beri web işleriyle uğraşan, aynı zamanda amatör müziklede ilgilenen sıradan birisi..

“MySQL LENGTH() fonksiyonu” üzerine 3 yorum

  1. Tayfun selam. Kullanman gereken fonksiyon LENGTH() değil CHAR_LENGTH(). Başın bu tür bir sorguda LENGTH() ile belaya girmeden hemen aralarındaki farkı araştırmanı öneririm. Kolay gelsin.

  2. Normal karakter ile kastettiğin nedir bilmiyorum ama mesele normal / normal olmayan karakterler değil, o örneğe bakarak bunun sadece € simgesi gibi karakterlerde olduğunu düşünüyorsan doğru değil.
    O yanıtta da söylenmiş ama ben de tekrar edeyim; LENGTH kaç karakter değil, kaç bayt olduğunu döndürür. Metinler fiziki olarak içinde bulunduğu tablodaki karakter setine göre saklanırlar.
    Söz gelimi Türkçe için kullandığımız latin5 karakter setinde Türkçeye özel harfler (İ, Ğ, Ş) LENGTH ile kullanmaya müsait 1 bayt yer kaplarken utf8 karakter setli bir tabloda bu 2 bayt olmaktadır. Hatta eğer olurda çok-dill bir projede utf8 yerine utf16 kullanılıyorsa, a’ya b’ye c’ye bakmadan her harf 2 bayt olarak saklandığından yapılan uygulama garip bir hal alabilir.
    En iyisi şöyle örneklendireyim, daha etkili olur : http://www.sqlfiddle.com/#!8/22e04/1
    Özetle, eğer harf uzunluğuna ihtiyacın varsa sorun olmaz deme, her zaman CHAR_LENGTH kullan.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir