MySQL에서 SELECT 및 SHOW 명령 결과 결합하기
MySQL에서는 사용자 정의 변수를 활용하면 SELECT 문과 SHOW 명령의 결과를 하나의 결과 집합으로 손쉽게 결합할 수 있습니다. 기본적인 쿼리 형식은 다음과 같습니다.
SELECT @변수명1 AS 별칭1, @변수명2 AS 별칭2, ...N;
1단계: 첫 번째 변수 생성 및 초기화
먼저 SET 명령을 사용하여 첫 번째 변수를 선언하고 값을 할당합니다.
mysql> SET @first_name='John';
Query OK, 0 rows affected (0.00 sec)
2단계: 두 번째 변수 생성 및 초기화
이어서 두 번째 변수도 동일한 방식으로 생성합니다.
mysql> SET @last_name='Smith';
Query OK, 0 rows affected (0.00 sec)
3단계: 변수들을 하나의 SELECT 문으로 결합
이제 두 변수를 하나의 SELECT 문에 넣고 각각 별칭(Alias)을 지정하면, 마치 SHOW 명령처럼 여러 값을 한 번에 조회할 수 있습니다.
mysql> SELECT @first_name AS EmployeeFirstName, @last_name AS EmployeeLastName;
실행 결과는 다음과 같습니다.
+-------------------+------------------+
| EmployeeFirstName | EmployeeLastName |
+-------------------+------------------+
| John | Smith |
+-------------------+------------------+
1 row in set (0.00 sec)
시스템 전역 변수(@@) 결합하기
사용자 정의 변수뿐만 아니라 시스템 전역 변수(System Global Variables)도 같은 방식으로 결합할 수 있습니다. 이 경우에는 일반 변수에 사용하는 단일 @ 대신 이중 @@ 기호를 사용해야 합니다.
예를 들어, 현재 MySQL 버전과 포트 번호를 하나의 결과로 함께 조회하려면 다음과 같이 작성합니다.
mysql> SELECT @@version AS CURRENT_MYSQL_VERSION,
@@port AS CURRENT_MYSQL_PORT_NUMBER;
실행 결과는 다음과 같습니다.
+-----------------------+---------------------------+
| CURRENT_MYSQL_VERSION | CURRENT_MYSQL_PORT_NUMBER |
+-----------------------+---------------------------+
| 8.0.21 | 3306 |
+-----------------------+---------------------------+
1 row in set (0.00 sec)
정리
이처럼 SET 명령으로 변수에 값을 저장한 뒤 SELECT 문에서 별칭과 함께 호출하면, 여러 개의 개별 명령 결과를 테이블 형태의 단일 결과 집합으로 깔끔하게 출력할 수 있습니다. 사용자 변수는 @, 시스템 전역 변수는 @@를 사용한다는 점만 기억하면 됩니다.