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

MySQL에서 특정 레코드의 값을 0으로 감소시키는 UPDATE 쿼리 작성법

MySQL에서 특정 레코드의 값을 감소시키고 그 값이 0에 도달하도록 만들려면 UPDATE 문에서 SET 절로 값을 줄이고, WHERE 절로 대상 레코드를 지정하면 됩니다. 아래 예제를 통해 단계별로 살펴보겠습니다.

1. 테이블 생성하기

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

mysql> create table DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Number int
);
Query OK, 0 rows affected (0.54 sec)

2. 샘플 데이터 삽입하기

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

mysql> insert into DemoTable(Number) values(10);
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable(Number) values(20);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable(Number) values(1);
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable(Number) values(0);
Query OK, 1 row affected (0.12 sec)

mysql> insert into DemoTable(Number) values(-1);
Query OK, 1 row affected (0.39 sec)

3. 전체 레코드 확인하기

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

mysql> select *from DemoTable;

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

+----+--------+
| Id | Number |
+----+--------+
| 1 | 10 |
| 2 | 20 |
| 3 | 1 |
| 4 | 0 |
| 5 | -1 |
+----+--------+
5 rows in set (0.00 sec)

4. 값이 0이 되도록 감소시키는 UPDATE 쿼리

특정 레코드의 값을 1씩 감소시켜 0으로 만들려면 다음과 같은 쿼리를 사용합니다.

mysql> update DemoTable
set Number = Number-1
where Id = 3 AND Number > 0;
Query OK, 1 row affected (0.20 sec)
Rows matched: 1 Changed: 1 Warnings: 0

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

다시 한번 테이블을 조회해 보겠습니다.

mysql> select *from DemoTable;

Id가 3인 레코드의 값이 기존의 1에서 1만큼 감소하여 0이 된 것을 확인할 수 있습니다.

+----+--------+
| Id | Number |
+----+--------+
| 1 | 10 |
| 2 | 20 |
| 3 | 0 |
| 4 | 0 |
| 5 | -1 |
+----+--------+
5 rows in set (0.00 sec)

핵심 포인트: WHERE 절의 'Number > 0' 조건

이 쿼리의 핵심은 WHERE 절에 Number > 0 조건을 포함한 것입니다. 이 조건 덕분에 값이 이미 0이거나 음수인 레코드는 더 이상 감소하지 않으므로, 값이 0 미만으로 내려가는 것을 방지할 수 있습니다. 재고 수량 관리처럼 값이 음수가 되면 안 되는 상황에서 특히 유용하게 활용됩니다.