MySQL에서는 @변수명 형식의 사용자 정의 변수를 사용하여 쿼리 결과를 변수에 저장할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, SELECT 문의 결과를 변수에 할당하는 과정을 단계별로 살펴보겠습니다.
1. 예제 테이블 생성
먼저 테스트에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1864
(
Id int,
FirstName varchar(20),
LastName varchar(20)
);
Query OK, 0 rows affected (0.00 sec)2. 샘플 데이터 삽입
INSERT 문을 사용하여 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable1864 values(101,'Chris','Brown'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1864 values(102,'David','Miller'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1864 values(103,'Adam','Smith'); Query OK, 1 row affected (0.00 sec) mysql> insert into DemoTable1864 values(104,'John','Doe'); Query OK, 1 row affected (0.00 sec)
3. 전체 데이터 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select * from DemoTable1864;
실행 결과는 다음과 같습니다.
+------+-----------+----------+ | Id | FirstName | LastName | +------+-----------+----------+ | 101 | Chris | Brown | | 102 | David | Miller | | 103 | Adam | Smith | | 104 | John | Doe | +------+-----------+----------+ 4 rows in set (0.00 sec)
4. 쿼리 결과를 변수에 할당하기
이제 할당 연산자(:=)를 사용하여 쿼리 결과를 사용자 정의 변수에 저장해 보겠습니다. 아래 쿼리는 Id가 103인 행의 FirstName과 LastName 값을 각각 @fName, @lName 변수에 할당합니다.
mysql> select @fName:=FirstName, @lName:=LastName
from DemoTable1864
where Id=103;실행 결과는 다음과 같습니다.
+-------------------+------------------+ | @fName:=FirstName | @lName:=LastName | +-------------------+------------------+ | Adam | Smith | +-------------------+------------------+ 1 row in set (0.00 sec)
5. 변수 값 확인하기
할당된 변수는 이후 별도의 SELECT 문으로 언제든 조회할 수 있습니다.
mysql> select @fName, @lName;
이처럼 MySQL에서는 @변수명 := 값 형식을 활용하면 쿼리 결과를 세션 내내 유지되는 사용자 정의 변수에 손쉽게 저장하고 재사용할 수 있습니다.