MySQL에서 사용자 정의 변수를 결과 테이블에 표시하려면 @ 기호로 변수를 선언하고, concat_ws() 함수를 활용하여 여러 컬럼의 값을 하나로 연결해 출력할 수 있습니다.
1. 샘플 테이블 생성
먼저 학생 이름 정보를 저장할 테이블을 생성합니다.
mysql> create table DemoTable1508
-> (
-> StudentFirstName varchar(20),
-> StudentLastName varchar(20)
-> );
Query OK, 0 rows affected (0.55 sec)2. 데이터 삽입
INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable1508 values('Chris','Brown');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1508 values('David','Miller');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1508 values('John','Doe');
Query OK, 1 row affected (0.15 sec)3. 전체 레코드 조회
SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select * from DemoTable1508;
위 쿼리는 다음과 같은 결과를 출력합니다.
+------------------+-----------------+ | StudentFirstName | StudentLastName | +------------------+-----------------+ | Chris | Brown | | David | Miller | | John | Doe | +------------------+-----------------+ 3 rows in set (0.00 sec)
4. 사용자 정의 변수로 연결된 값 표시하기
이제 @ 기호를 사용해 사용자 정의 변수를 선언하고, concat_ws() 함수로 이름과 성을 하이픈(-)으로 연결하여 결과 테이블에 표시하는 쿼리입니다.
mysql> select @FullName:=concat_ws('-',StudentFirstName,StudentLastName) from DemoTable1508;실행 결과는 다음과 같습니다.
+------------------------------------------------------------+
| @FullName:=concat_ws('-',StudentFirstName,StudentLastName) |
+------------------------------------------------------------+
| Chris-Brown |
| David-Miller |
| John-Doe |
+------------------------------------------------------------+
3 rows in set (0.03 sec)핵심 포인트 정리
- @변수명 := 값 형태로 SELECT 문 안에서 직접 사용자 정의 변수에 값을 할당할 수 있습니다.
concat_ws()함수의 첫 번째 인자는 구분자(separator)이며, 이후 인자들을 해당 구분자로 연결합니다. NULL 값은 자동으로 무시됩니다.- 이 방식을 활용하면 여러 컬럼을 조합한 새로운 값을 별도의 컬럼 없이 간편하게 확인할 수 있습니다.