MySQL: Diurutkan berdasarkan ukuran / panjang bidang

90

Berikut adalah struktur tabelnya (misal tes):

Nama Bidang Tipe data
Indo BIGINT (20)
judul varchar (25)
Deskripsi Teks

Sebuah kueri seperti:

SELECT * FROM TEST ORDER BY description DESC;

Tapi saya ingin memesan berdasarkan ukuran / panjang bidang deskripsi.

Jenis bidang adalah TEXT atau BLOB.

Sadi
sumber

Jawaban:

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

The LENGTHFungsi memberikan panjang string dalam bytes. Jika Anda ingin menghitung karakter (multi-byte), gunakan CHAR_LENGTHfungsi sebagai gantinya:

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description) DESC;
João Silva
sumber
4
Sekadar menambah jawaban: jika tipenya BLOB, Anda bisa menggunakan OCTET_LENGTH(column_name).
mastazi
@mastazi menurut dokumentasi MySQL: OCTET_LENGTH () adalah sinonim untuk LENGTH ().
Heitor
'CHAR_LENGTH' bukan nama fungsi bawaan yang dikenali. Saya menghadapi kesalahan ini
Anurag
5
SELECT * FROM TEST ORDER BY CHAR_LENGTH(description);
Mike Sherov
sumber
'CHAR_LENGTH' bukan nama fungsi bawaan yang dikenali. Saya menghadapi kesalahan ini
Anurag
5

Bagi mereka yang menggunakan MS SQL

SELECT * FROM TEST ORDER BY LEN(field)
mfrederick.dll
sumber