2010-04-03 93 views
62

這裏是一個表格結構(例如測試):MySQL的:排序字段大小/長度

__________________________________________ 
| Field Name  | Data Type    |     
|________________|_________________________|     
| id   | BIGINT (20)   |     
|________________|_________________________|     
| title  | varchar(25)   |     
|________________|_________________________|     
| description | text     |     
|________________|_________________________|     

的查詢等:

SELECT * FROM TEST ORDER BY description DESC; 

但我想通過場尺寸訂購/字段說明的長度。字段類型將是TEXT或BLOB。

回答

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

LENGTH函數給出字符串的長度(以字節爲單位)。如果你要計算(多字節)字符,請使用CHAR_LENGTH函數:

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

我想補充答案:如果類型是BLOB,你可以使用'OCTET_LENGTH(column_name)'。根據MySQL的文檔: – mastazi 2015-11-02 22:56:16

+0

@mastazi:OCTET_LENGTH()是LENGTH()的同義詞。 – Heitor 2017-10-01 05:35:19

+0

'CHAR_LENGTH'不是公認的內置函數名稱。我正面臨這個錯誤 – Anurag 2017-12-25 07:05:24

4
SELECT * FROM TEST ORDER BY CHAR_LENGTH(description); 
+0

'CHAR_LENGTH'不是一個公認的內置函數名稱。我正面臨這個錯誤 – Anurag 2017-12-25 07:05:38

3

對於那些使用MS SQL

SELECT * FROM TEST ORDER BY LEN(field)