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

MySQL에서 행 값을 1씩 감소시키는 방법 – UPDATE 쿼리 활용 가이드

MySQL에서는 UPDATE 명령어를 사용하여 특정 행(row)의 숫자 값을 손쉽게 1씩 증가 또는 감소시킬 수 있습니다. 반대로 값을 증가시키고 싶다면 yourColumnName+1로 작성하면 되고, 감소시키려면 아래와 같이 -1을 사용합니다.

기본 문법은 다음과 같습니다.

UPDATE yourTableName SET yourColumnName = yourColumnName-1 WHERE condition;

예제 테이블 생성하기

실제로 행 값을 1씩 감소시키는 과정을 살펴보기 위해 먼저 예제용 테이블을 생성하겠습니다. 다음 쿼리를 실행합니다.

mysql> CREATE TABLE IncrementAndDecrementValue
    -> (
    -> UserId int,
    -> UserScores int
    -> );
Query OK, 0 rows affected (0.60 sec)

데이터 삽입하기

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

mysql> INSERT INTO IncrementAndDecrementValue VALUES(101,20000);
Query OK, 1 row affected (0.13 sec)

mysql> INSERT INTO IncrementAndDecrementValue VALUES(102,30000);
Query OK, 1 row affected (0.20 sec)

mysql> INSERT INTO IncrementAndDecrementValue VALUES(103,40000);
Query OK, 1 row affected (0.11 sec)

저장된 데이터 조회하기

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> SELECT *FROM IncrementAndDecrementValue;

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

+--------+------------+
| UserId | UserScores |
+--------+------------+
|   101 | 20000      |
|    102 | 30000      |
|    103 | 40000      |
+--------+------------+
3 rows in set (0.00 sec)

WHERE 조건으로 값 1씩 감소시키기

이제 WHERE 조건절과 함께 UPDATE 문을 사용하여 UserId가 103인 행의 UserScores 값을 1만큼 감소시켜 보겠습니다.

mysql> UPDATE IncrementAndDecrementValue SET UserScores = UserScores-1 WHERE UserId = 103;
Query OK, 1 row affected (0.41 sec)
Rows matched: 1 Changed: 1 Warnings: 0

쿼리 실행 결과 Rows matched: 1, Changed: 1이 표시되므로, 조건에 맞는 한 개의 행이 성공적으로 수정되었음을 알 수 있습니다.

업데이트 결과 확인하기

값이 실제로 변경되었는지 SELECT 문으로 다시 확인해 보겠습니다.

mysql> SELECT *FROM IncrementAndDecrementValue;

아래 출력 결과를 보면 UserId가 103인 행의 UserScores 값이 40000에서 39999로 정상적으로 감소한 것을 확인할 수 있습니다.

+--------+------------+
| UserId | UserScores |
+--------+------------+
|    101 | 20000      |
|    102 | 30000      |
|    103 | 39999      |
+--------+------------+
3 rows in set (0.00 sec)

정리

MySQL에서 특정 행의 값을 감소시키는 방법은 매우 간단합니다. UPDATE 문에서 대상 컬럼에 컬럼명-1을 지정하고, WHERE 절로 원하는 행을 정확히 필터링하면 됩니다. 이 방식은 게임 점수 차감, 재고 수량 조절 등 다양한 상황에서 유용하게 활용할 수 있으며, 값을 증가시킬 때는 동일한 방식으로 +1을 사용하면 됩니다.