MySQL : 필드 크기 / 길이로 정렬


89

다음은 테이블 구조입니다 (예 : 테스트).

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

다음과 같은 쿼리 :

SELECT * FROM TEST ORDER BY description DESC;

하지만 필드 설명 의 필드 크기 / 길이 로 주문하고 싶습니다 . 필드 유형은 TEXT 또는 BLOB입니다.

답변:


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

LENGTH함수는 문자열 길이를 바이트 단위로 제공합니다. (멀티 바이트) 문자 수를 계산하려면 CHAR_LENGTH대신 함수를 사용하십시오 .

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

4
대답에 추가하기 위해 : 유형이 BLOB이면 OCTET_LENGTH(column_name).
mastazi

MySQL 문서에 따르면 @mastazi : OCTET_LENGTH ()는 LENGTH ()의 동의어입니다.
Heitor

'CHAR_LENGTH'는 인식 된 내장 함수 이름이 아닙니다. 이 오류에 직면하고있다
아 누락

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

'CHAR_LENGTH'는 인식 된 내장 함수 이름이 아닙니다. 이 오류에 직면하고있다
아 누락

4

MS SQL을 사용하는 경우

SELECT * FROM TEST ORDER BY LEN(field)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.