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

MySQL 테이블에서 단일 열만 업데이트하고 조건에 따라 값 증가시키기

MySQL에서 조건에 따라 특정 열의 값을 증가시키는 방법

MySQL에서 UPDATE 문을 사용하면 테이블의 다른 열은 그대로 둔 채 단일 열만 선택적으로 수정할 수 있습니다. WHERE 절과 함께 활용하면 특정 조건을 만족하는 행에 대해서만 값을 증가시키는 것도 가능합니다. 이번 글에서는 실제 예제를 통해 그 과정을 단계별로 살펴보겠습니다.

1. 테이블 생성하기

먼저 예제로 사용할 테이블을 생성합니다. 이름(Name)과 점수(Score) 두 개의 열을 가진 간단한 테이블입니다.

mysql> create table DemoTable
(
   Name varchar(50),
   Score int
);
Query OK, 0 rows affected (1.02 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable values('Sam',45);
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values('Mike',28);
Query OK, 1 row affected (0.36 sec)
mysql> insert into DemoTable values('Carol',27);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('David',67);
Query OK, 1 row affected (0.19 sec)

3. 현재 데이터 확인하기

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

mysql> select *from DemoTable;

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

+-------+-------+
| Name  | Score |
+-------+-------+
| Sam   |    45 |
| Mike  |    28 |
| Carol |    27 |
| David |    67 |
+-------+-------+
4 rows in set (0.00 sec)

4. 조건에 따라 단일 열 업데이트하기

이제 핵심인 UPDATE 쿼리입니다. 아래 쿼리는 점수(Score)가 30 미만인 행에 한해서만 Score 열의 값을 10씩 증가시킵니다. Name 열은 전혀 변경되지 않습니다.

mysql> update DemoTable set Score=Score+10 where Score < 30;
Query OK, 2 rows affected (0.22 sec)
Rows matched: 2 Changed: 2 Warnings: 0

실행 결과를 보면 조건에 해당하는 2개의 행(Mike와 Carol)이 변경된 것을 확인할 수 있습니다.

5. 업데이트 결과 확인하기

테이블의 레코드를 다시 한번 조회하여 변경 사항을 확인해 보겠습니다.

mysql> select *from DemoTable;

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

+-------+-------+
| Name  | Score |
+-------+-------+
| Sam   |    45 |
| Mike  |    38 |
| Carol |    37 |
| David |    67 |
+-------+-------+
4 rows in set (0.00 sec)

핵심 정리

UPDATE 문에서 SET 열이름 = 열이름 + 증가값 형태를 사용하면 기존 값을 기준으로 손쉽게 값을 더할 수 있으며, WHERE 절을 결합하면 조건을 만족하는 행만 선별적으로 업데이트할 수 있습니다. 위 예제에서는 Score가 30보다 작은 Mike(28→38)와 Carol(27→37)의 점수만 10씩 증가했고, Sam과 David의 데이터는 그대로 유지되었습니다. 이 패턴은 재고 수량 조정, 조회수 증가, 포인트 적립 등 다양한 상황에서 유용하게 활용됩니다.