MySQL:按字段大小/长度排序

Sad*_*adi 77 mysql sql sql-order-by

这是一个表结构(例如测试):

 __________________________________________
| Field Name     | Data Type               |                 
|________________|_________________________|                 
|    id          |   BIGINT (20)           |                 
|________________|_________________________|                 
|    title       |   varchar(25)           |                 
|________________|_________________________|                 
|    description |   text                  |                 
|________________|_________________________|                 
Run Code Online (Sandbox Code Playgroud)

像这样的查询:

SELECT * FROM TEST ORDER BY description DESC;
Run Code Online (Sandbox Code Playgroud)

但我想按字段描述的字段大小/长度排序.字段类型为TEXT或BLOB.

Joã*_*lva 145

SELECT * FROM TEST ORDER BY LENGTH(description) DESC;
Run Code Online (Sandbox Code Playgroud)

LENGTH函数给出字符串的长度(以字节为单位).如果要计算(多字节)字符,请改用该CHAR_LENGTH函数:

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description) DESC;
Run Code Online (Sandbox Code Playgroud)

  • 只是添加答案:如果类型是BLOB,则可以使用`OCTET_LENGTH(column_name)`. (2认同)

Mik*_*rov 5

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description);
Run Code Online (Sandbox Code Playgroud)


小智 5

对于那些使用 MS SQL 的人

SELECT * FROM TEST ORDER BY LEN(field)
Run Code Online (Sandbox Code Playgroud)