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

MySQL에서 쿼리 결과를 변수에 저장하는 방법 (SELECT INTO 활용)

MySQL에서는 SELECT ... INTO 명령을 사용하여 쿼리의 결과값을 사용자 정의 변수(@변수)에 저장할 수 있습니다. 이 기능은 특정 값을 여러 쿼리에서 재사용해야 하거나, 복잡한 로직을 단계별로 처리할 때 매우 유용합니다.

기본 문법

쿼리 결과를 변수에 저장하는 기본 문법은 다음과 같습니다.

SELECT yourColumnName1 INTO @anyVariableName FROM yourTableName WHERE yourColumnName2 = 'anyValue';

변수에 값이 제대로 저장되었는지 확인하려면 아래와 같이 SELECT 명령으로 변수를 조회하면 됩니다.

SELECT @anyVariableName;

예제 테이블 생성

문법을 실제로 이해하기 위해 먼저 예제용 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> CREATE TABLE StudentInformation
-> (
-> StudentId int,
-> StudentName varchar(100),
-> StudentAge int
-> );
Query OK, 0 rows affected (0.62 sec)

데이터 삽입

이제 INSERT 명령을 사용하여 테이블에 학생 정보를 몇 개 삽입해 보겠습니다.

mysql> INSERT INTO StudentInformation VALUES(1,'John',23);
Query OK, 1 row affected (0.21 sec)

mysql> INSERT INTO StudentInformation VALUES(2,'Adam',24);
Query OK, 1 row affected (0.17 sec)

mysql> INSERT INTO StudentInformation VALUES(3,'Bob',21);
Query OK, 1 row affected (0.20 sec)

mysql> INSERT INTO StudentInformation VALUES(4,'Carol',20);
Query OK, 1 row affected (0.17 sec)

mysql> INSERT INTO StudentInformation VALUES(5,'Mike',25);
Query OK, 1 row affected (0.13 sec)

저장된 데이터 확인

SELECT 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> SELECT * FROM StudentInformation;

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

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
| 1         | John        | 23         |
| 2         | Adam        | 24         |
| 3         | Bob         | 21         |
| 4         | Carol       | 20         |
| 5         | Mike        | 25         |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

쿼리 결과를 변수에 저장하기

이제 쿼리 결과를 변수에 저장하는 핵심 부분입니다. 다음 쿼리는 'Adam'이라는 이름을 가진 학생의 나이를 @yourAge 변수에 저장합니다.

mysql> SELECT StudentAge INTO @yourAge FROM StudentInformation WHERE StudentName='Adam';
Query OK, 1 row affected (0.03 sec)

변수 값 확인

변수 @yourAge에 어떤 값이 저장되어 있는지 확인해 보겠습니다.

mysql> SELECT @yourAge;

실행 결과, Adam 학생의 나이인 24가 변수에 정상적으로 저장된 것을 확인할 수 있습니다.

+----------+
| @yourAge |
+----------+
| 24       |
+----------+
1 row in set (0.00 sec)

정리 및 참고 사항

이처럼 MySQL의 SELECT ... INTO @변수 구문을 활용하면 쿼리 결과를 손쉽게 변수에 담아 재사용할 수 있습니다. 몇 가지 주의할 점은 다음과 같습니다.

  • 쿼리 결과가 여러 행일 경우 에러가 발생할 수 있으므로, 반드시 단일 행만 반환되도록 조건을 지정해야 합니다.
  • 사용자 정의 변수는 세션(session) 단위로 유지되며, 연결이 종료되면 사라집니다.
  • 변수명 앞에는 반드시 @ 기호를 붙여야 합니다.