MySQL - Verileri dize uzunluğuna göre seçme


302
SELECT * FROM table ORDER BY string_length(column);

Bunu yapmak için bir MySQL işlevi var mı (tabii ki yerine string_length)?

Yanıtlar:


492

CHAR_LENGTH()Bir dizedeki karakter sayısını almak için arıyorsunuz .

Çok baytlık karakter kümeleri LENGTH(), dizenin kapladığı bayt sayısını verirken CHAR_LENGTH(), karakter sayısını döndürür.


139
Aslında, CHAR_LENGTH () daha iyi bir seçim olmalıdır. Çok baytlık karakter kümeleri için LENGTH () size dizenin kapladığı bayt sayısını verirken, CHAR_LENGTH () karakter sayısını döndürür.
András Szepesházi

4
UZUNLUĞU ('Ö') seçin; sonuçlar 2 !! András Szepesházi'nin cevabı doğru!
fubo

CHAR_LENGTHKarakter sayısını döndürdüğüm için bir tamsayı parametresi göndermek doğru mu? , por ejemplo CHAR_LENGTH(12)dönüş2
DarkFenix



3

Dizenin uzunluğunu bulmak için lengthkullandığım işlev şu şekilde kullanılır:

SELECT * FROM table ORDER BY length(column);

1

Bu cümleleri filtrelemek için kullandım

SELECT table.field1, table.field2 FROM table WHERE length(field) > 10;

filtrelemek istediğiniz diğer numara için 10 değerini değiştirebilirsiniz.


-2
select * from *tablename* where 1 having length(*fieldname*)=*fieldlength*

Örneğin, müşteri arasından girişin adı 2 karakterden kısa olan bir seçim yapmak isterseniz.

select * from customer where 1 **having length(name)<2**
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.