Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 열 길이를 기준으로 정렬하는 방법

MySQL에서 열 길이로 정렬하기

MySQL에서 열의 길이를 기준으로 데이터를 정렬하려면 ORDER BY LENGTH() 함수를 사용하면 됩니다. LENGTH() 함수는 문자열의 길이를 반환하며, 이를 ORDER BY 절과 함께 사용하면 짧은 문자열부터 긴 문자열 순으로(또는 DESC 키워드를 추가하면 반대로) 정렬할 수 있습니다.

실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 아래와 같이 테이블을 생성합니다.

mysql> create table DemoTable715 (UserMessage varchar(100));
Query OK, 0 rows affected (0.56 sec)

2단계: 레코드 삽입

INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 삽입합니다.

mysql> insert into DemoTable715 values('Aw');
Query OK, 1 row affected (0.49 sec)
mysql> insert into DemoTable715 values('Awe');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable715 values('A');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable715 values('Awes');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable715 values('Awesom');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable715 values('Awesome');
Query OK, 1 row affected (0.19 sec)

3단계: 전체 레코드 조회

SELECT 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable715;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------------+
| UserMessage |
+-------------+
| Aw          |
| Awe         |
| A           |
| Awes        |
| Awesom      |
| Awesome     |
+-------------+
6 rows in set (0.00 sec)

현재 레코드는 삽입된 순서대로 저장되어 있으며, 특정 기준으로 정렬되어 있지 않습니다.

4단계: 열 길이를 기준으로 정렬

이제 LENGTH() 함수를 활용하여 UserMessage 열의 길이순으로 정렬하는 쿼리를 실행해 보겠습니다.

mysql> select *from DemoTable715 order by length(UserMessage);

실행 결과는 다음과 같습니다.

+-------------+
| UserMessage |
+-------------+
| A           |
| Aw          |
| Awe         |
| Awes        |
| Awesom      |
| Awesome     |
+-------------+
6 rows in set (0.00 sec)

추가 팁

기본적으로 ORDER BY LENGTH()는 오름차순(짧은 문자열부터)으로 정렬됩니다. 만약 긴 문자열부터 내림차순으로 정렬하고 싶다면 DESC 키워드를 추가하면 됩니다.

mysql> select *from DemoTable715 order by length(UserMessage) desc;

또한 한글처럼 멀티바이트 문자가 포함된 경우에는 CHAR_LENGTH() 함수를 사용하는 것이 좋습니다. LENGTH()는 바이트 수를 기준으로 계산하지만, CHAR_LENGTH()는 실제 문자 개수를 기준으로 계산하기 때문입니다.