MySQL: порядок по размеру / длине поля - PullRequest
74 голосов
/ 03 апреля 2010

Вот структура таблицы (например, тест):

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

Запрос типа:

SELECT * FROM TEST ORDER BY description DESC;

Но я бы хотел заказать размер / длина поля описания поля. Тип поля будет TEXT или BLOB.

Ответы [ 3 ]

138 голосов
/ 03 апреля 2010
SELECT * FROM TEST ORDER BY LENGTH(description) DESC;

Функция LENGTH дает длину строки в байтах. Если вы хотите считать (многобайтовые) символы, используйте вместо этого функцию CHAR_LENGTH:

SELECT * FROM TEST ORDER BY CHAR_LENGTH(description) DESC;
4 голосов
/ 03 апреля 2010
SELECT * FROM TEST ORDER BY CHAR_LENGTH(description);
3 голосов
/ 28 июня 2016

Для тех, кто использует MS SQL

SELECT * FROM TEST ORDER BY LEN(field)
...