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

MySQL에서 SELECT INTO로 사용자 정의 변수에 값 저장하는 방법

MySQL 사용자 정의 변수란?

MySQL에서 사용자 정의 변수(user-defined variable)를 선언할 때는 변수 이름 앞에 @ 기호를 붙입니다. SELECT 문의 조회 결과를 변수에 저장하려면 다음과 같은 기본 구문을 사용합니다. 여기서 @anyVariableName은 사용자가 임의로 지정하는 변수 이름입니다.

select yourColumnName into @anyVariableName from yourTableName where yourCondition;

1단계: 테이블 생성하기

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Name varchar(100)
);
Query OK, 0 rows affected (0.73 sec)

2단계: 데이터 삽입하기

INSERT 명령을 사용해 테이블에 샘플 레코드를 추가합니다.

mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable(Name) values('Robert');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.10 sec)

3단계: 전체 레코드 조회하기

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+--------+
| Id | Name   |
+----+--------+
|  1 | Chris  |
|  2 | Robert |
|  3 | David  |
+----+--------+
3 rows in set (0.00 sec)

4단계: 사용자 정의 변수에 값 저장하기

다음은 MySQL에서 SELECT 결과를 사용자 정의 변수에 저장하는 쿼리입니다. WHERE 조건을 활용해 Id가 3인 행의 Name 값을 @FirstName 변수에 담습니다.

mysql> select Name into @FirstName from DemoTable where Id=3;
Query OK, 1 row affected (0.02 sec)

이제 저장된 변수의 값을 확인해 보겠습니다.

mysql> select @FirstName;

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

+------------+
| @FirstName |
+------------+
| David      |
+------------+
1 row in set (0.00 sec)

정리 및 참고 사항

이처럼 MySQL에서는 SELECT ... INTO 구문을 활용하면 쿼리 결과를 사용자 정의 변수에 간편하게 저장할 수 있습니다. 저장된 변수는 이후 다른 쿼리나 저장 프로시저(Stored Procedure)에서 자유롭게 재사용할 수 있어, 복잡한 로직을 단계별로 나누어 처리할 때 특히 유용합니다.

단, 주의할 점도 있습니다. SELECT ... INTO 구문은 반드시 한 개의 행만 반환해야 합니다. 조회 결과가 여러 행일 가능성이 있다면 LIMIT 1 절을 함께 사용하거나, 조건을 더 구체적으로 지정해 오류를 방지하는 것이 좋습니다.