MySQL: Alan boyutuna / uzunluğuna göre sırala


90

İşte bir tablo yapısı (örn. Test):

Alan adı Veri tipi
İD BÜYÜK (20)
Başlık varchar (25)
Açıklama Metin

Şunun gibi bir sorgu:

SELECT * FROM TEST ORDER BY description DESC;

Ancak alan açıklamasının alan boyutuna / uzunluğuna göre sipariş vermek istiyorum .

Alan türü METİN veya BLOB olacaktır.

Yanıtlar:


172
SELECT * FROM TEST ORDER BY LENGTH(description) DESC;

LENGTHFonksiyon bayt dize uzunluğunu verir. Karakterleri saymak (çok baytlı) istiyorsanız CHAR_LENGTHbunun yerine işlevi kullanın:

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description) DESC;

4
Sadece yanıta eklemek için: tür BLOB ise kullanabilirsiniz OCTET_LENGTH(column_name).
mastazi

MySQL belgelerine göre @mastazi: OCTET_LENGTH (), LENGTH () ile eşanlamlıdır.
Heitor

"CHAR_LENGTH" tanınan bir yerleşik işlev adı değil. Bu hatayla karşılaşıyorum
Anurag

5
SELECT * FROM TEST ORDER BY CHAR_LENGTH(description);

"CHAR_LENGTH" tanınan bir yerleşik işlev adı değil. Bu hatayla karşılaşıyorum
Anurag

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.