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

MySQL에서 데이터베이스 필드 값을 1씩 증가시키는 방법

MySQL에서는 UPDATE 명령어를 사용하여 특정 필드의 값을 손쉽게 1씩 증가시킬 수 있습니다. 예를 들어 로그인 횟수, 조회수, 카운터처럼 숫자를 누적해야 하는 경우에 매우 유용하게 활용됩니다.

기본 문법

필드 값을 증가시키는 기본적인 UPDATE 문법은 다음과 같습니다.

UPDATE 테이블명
SET 컬럼명 = 컬럼명 + 1
WHERE 조건;

SET 절에서 해당 컬럼의 현재 값에 1을 더해 다시 대입하는 방식입니다. WHERE 절을 생략하면 테이블의 모든 행이 증가하므로, 특정 행만 수정할 때는 반드시 조건을 지정해야 합니다.

예제 테이블 생성

문법을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다.

mysql> create table IncrementBy1
-> (
-> Id int,
-> Name varchar(100),
-> CounterLogin int
-> );
Query OK, 0 rows affected (0.63 sec)

샘플 데이터 입력

INSERT 명령어로 몇 개의 레코드를 삽입합니다.

mysql> insert into IncrementBy1 values(100,'John',30);
Query OK, 1 row affected (0.17 sec)

mysql> insert into IncrementBy1 values(101,'Carol',50);
Query OK, 1 row affected (0.15 sec)

mysql> insert into IncrementBy1 values(102,'Bob',89);
Query OK, 1 row affected (0.25 sec)

mysql> insert into IncrementBy1 values(103,'Mike',99);
Query OK, 1 row affected (0.18 sec)

mysql> insert into IncrementBy1 values(104,'Sam',199);
Query OK, 1 row affected (0.36 sec)

mysql> insert into IncrementBy1 values(105,'Tom',999);
Query OK, 1 row affected (0.18 sec)

전체 데이터 조회

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

mysql> select * from IncrementBy1;

출력 결과

+------+-------+--------------+
| Id | Name | CounterLogin |
+------+-------+--------------+
| 100 | John | 30 |
| 101 | Carol | 50 |
| 102 | Bob | 89 |
| 103 | Mike | 99 |
| 104 | Sam | 199 |
| 105 | Tom | 999 |
+------+-------+--------------+
6 rows in set (0.00 sec)

필드 값을 1 증가시키기

이제 Id가 105인 Tom의 CounterLogin 값을 1 증가시켜 보겠습니다.

mysql> update IncrementBy1
-> set CounterLogin = CounterLogin + 1
-> where Id = 105;
Query OK, 1 row affected (0.45 sec)
Rows matched: 1 Changed: 1 Warnings: 0

WHERE 절에 Id=105 조건을 지정했기 때문에 해당 레코드만 업데이트되고, 나머지 행은 그대로 유지됩니다.

결과 확인

업데이트가 정상적으로 적용되었는지 다음 쿼리로 확인할 수 있습니다.

mysql> select * from IncrementBy1 where Id=105;

출력 결과

+------+------+--------------+
| Id | Name | CounterLogin |
+------+------+--------------+
| 105 | Tom | 1000 |
+------+------+--------------+
1 row in set (0.00 sec)

실행 결과를 보면 Tom의 CounterLogin 값이 999에서 1000으로 1 증가한 것을 확인할 수 있습니다.

추가 팁

  • 여러 값 증가: +1 대신 +5, +10 등 원하는 만큼 값을 늘릴 수 있습니다.
  • 값 감소: -1을 사용하면 필드 값을 감소시킬 수도 있습니다.
  • WHERE 절 주의: 조건 없이 실행하면 테이블의 모든 행이 한꺼번에 변경되므로 주의해야 합니다.