Sadi Sadi - 5 months ago 29
SQL Question

MySQL: Order by field size/length

Here is a table structure (e.g. test):

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


A query like:

SELECT * FROM TEST ORDER BY description DESC;


But I would like to order by the field size/length of the field description. The field type will be TEXT or BLOB.

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

The LENGTH function gives the length of string in bytes. If you want to count (multi-byte) characters, use the CHAR_LENGTH function instead:

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