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

MySQL에서 특정 행의 단일 값만 가져오는 방법 (SELECT INTO 활용)

개요

MySQL에서 테이블의 특정 행에 있는 단일 값을 조회하여 변수에 저장하고 싶다면, SELECT ... INTO 변수 구문과 WHERE 절을 함께 사용하면 됩니다. 이 방법을 사용하면 쿼리 결과를 별도의 처리 없이 바로 사용자 정의 변수에 담아 활용할 수 있습니다.

실제 예제를 통해 단계별로 살펴보겠습니다.

1. 샘플 테이블 생성

먼저 실습에 사용할 테이블을 생성합니다.

mysql> create table DemoTable1896
    (
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(20),
    StudentMarks int
    );
Query OK, 0 rows affected (0.00 sec)

위 테이블은 학생 ID, 이름, 점수를 저장하는 구조로, StudentId는 자동 증가 기본 키로 설정되어 있습니다.

2. 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable1896(StudentName,StudentMarks) values('Chris',56);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1896(StudentName,StudentMarks) values('David',98);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1896(StudentName,StudentMarks) values('Mike',89);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1896(StudentName,StudentMarks) values('Sam',78);
Query OK, 1 row affected (0.00 sec)

3. 전체 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select * from DemoTable1896;

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

+-----------+-------------+--------------+
| StudentId | StudentName | StudentMarks |
+-----------+-------------+--------------+
|         1 | Chris       |          56 |
|         2 | David       |          98 |
|         3 | Mike        |          89 |
|         4 | Sam         |          78 |
+-----------+-------------+--------------+
4 rows in set (0.00 sec)

4. 특정 행의 값을 변수로 가져오기

이제 핵심인 쿼리입니다. 먼저 변수를 NULL로 초기화한 뒤, WHERE 조건에 맞는 행의 값을 SELECT INTO로 변수에 저장합니다.

mysql> set @Name:=NULL;
Query OK, 0 rows affected (0.00 sec)
mysql> select StudentName into @Name from DemoTable1896 where StudentMarks=98;
Query OK, 1 row affected (0.00 sec)

위 쿼리는 StudentMarks가 98인 행의 StudentName 값을 @Name 변수에 할당합니다.

5. 변수 값 확인

저장된 변수의 값을 출력해 보겠습니다.

mysql> select @Name;

실행 결과:

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

점수가 98점인 학생의 이름인 'David'가 변수에 정상적으로 저장된 것을 확인할 수 있습니다.

마무리 및 참고 사항

이처럼 SELECT ... INTO @변수 구문을 사용하면 특정 행의 단일 컬럼 값을 손쉽게 변수에 담아 재사용할 수 있습니다. 다만 몇 가지 주의할 점이 있습니다.

  • WHERE 조건에 해당하는 행이 여러 개면 오류가 발생하거나 의도하지 않은 결과가 나올 수 있으므로, 조건이 하나의 행만 반환하도록 설계하는 것이 안전합니다.
  • 조건에 맞는 행이 없으면 변수는 NULL 상태로 유지됩니다.
  • 여러 컬럼 값을 동시에 가져오려면 select col1, col2 into @var1, @var2 형태로 작성할 수 있습니다.