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

MySQL SHOW COLUMNS 결과를 원하는 순서로 정렬하는 방법

MySQL의 SHOW COLUMNS 명령어는 기본적으로 테이블에 컬럼이 정의된 순서대로 결과를 반환합니다. 만약 컬럼 이름을 알파벳순처럼 특정 순서로 정렬된 결과를 얻고 싶다면, SHOW COLUMNS 대신 INFORMATION_SCHEMA.COLUMNS 뷰를 조회하고 ORDER BY 절을 함께 사용해야 합니다.

기본 구문

SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '테이블명'
AND column_name LIKE '시작컬럼명%'
ORDER BY column_name DESC;

주요 요소 살펴보기:

  • INFORMATION_SCHEMA.COLUMNS: 데이터베이스 내 모든 테이블의 컬럼 정보를 담고 있는 시스템 뷰입니다.
  • WHERE table_name = '테이블명': 조회 대상 테이블을 지정합니다.
  • LIKE '시작컬럼명%': 특정 문자열로 시작하는 컬럼만 필터링할 수 있습니다.
  • ORDER BY column_name DESC / ASC: 내림차순 또는 오름차순으로 결과를 정렬합니다.

예제 테이블 생성하기

설명을 위해 먼저 TEST 데이터베이스에 테이블을 하나 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table OrderByColumnName
   -> (
   -> StudentId int,
   -> StudentFirstName varchar(10),
   -> StudentLastName varchar(10),
   -> StudentAddress varchar(20), 
   -> StudentAge int,
   -> StudentMarks int
   -> );
Query OK, 0 rows affected (1.81 sec)

Case 1: 내림차순(DESC)으로 정렬하기

컬럼 이름을 내림차순(Z→A)으로 정렬하여 반환하려면 ORDER BY 절에 DESC 키워드를 사용합니다.

mysql> SELECT COLUMN_NAME
   -> FROM INFORMATION_SCHEMA.COLUMNS
   -> WHERE table_name = 'OrderByColumnName'
   -> AND column_name LIKE 'student%'
   -> ORDER BY column_name DESC;

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

+------------------+
| COLUMN_NAME      |
+------------------+
| StudentMarks     |
| StudentLastName  |
| StudentId        |
| StudentFirstName |
| StudentAge       |
| StudentAddress   |
+------------------+
6 rows in set (0.00 sec)

Case 2: 오름차순(ASC)으로 정렬하기

반대로 오름차순(A→Z)으로 정렬하고 싶다면 별도의 키워드를 붙일 필요가 없습니다. ORDER BY 절은 기본적으로 오름차순으로 동작하기 때문에, ASC 키워드를 생략해도 결과는 동일하게 정렬됩니다.

mysql> SELECT COLUMN_NAME
   -> FROM INFORMATION_SCHEMA.COLUMNS
   -> WHERE table_name = 'OrderByColumnName' 
   -> AND column_name LIKE 'student%'
   -> ORDER BY column_name;

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

+------------------+
| COLUMN_NAME      |
+------------------+
| StudentAddress   |
| StudentAge       |
| StudentFirstName |
| StudentId        |
| StudentLastName  |
| StudentMarks     |
+------------------+
6 rows in set (0.00 sec)

정리

MySQL에서 컬럼 목록을 특정 순서로 조회하려면 SHOW COLUMNS 대신 INFORMATION_SCHEMA.COLUMNS를 조회하는 것이 가장 확실한 방법입니다. 내림차순에는 DESC를 명시하고, 오름차순은 기본값이므로 생략할 수 있다는 점만 기억하면 됩니다.