Để sắp xếp chuỗi theo độ dài (số ký tự), dùng ORDER BY LENGTH(column).
Ví dụ minh họa
Tạo bảng và chèn chuỗi độ dài khác nhau:
CREATE TABLE orderingAADemo (Value VARCHAR(100));
INSERT INTO orderingAADemo VALUES ('A'), ('B'), ('AA'), ('C'), ('CCC');
Dữ liệu:
+-------+ | Value | +-------+ | A | | B | | AA | | C | | CCC | +-------+
Sắp xếp giảm dần theo độ dài, tie-break theo giá trị chuỗi:
SELECT * FROM orderingAADemo ORDER BY LENGTH(Value) DESC, Value;
Kết quả:
+-------+ | Value | +-------+ | CCC | | AA | | A | | B | | C | +-------+
Giải thích:
LENGTH()trả về số byte (với charset latin1/utf8mb4 ký tự ASCII = 1 byte).CHAR_LENGTH()trả về số ký tự (dùng cho multi-byte charset). Khuyên dùngCHAR_LENGTH()cho chính xác.DESCsắp xếp dài nhất lên đầu. BỏDESCđể ngắn nhất lên đầu., Valuelàm tie-break: cùng độ dài thì sắp xếp alphabet.