MySQL에서 기존 값에 1을 더하는 방법
MySQL에서 이미 저장된 값에 1을 더하려면 UPDATE 문의 SET 절에서 해당 컬럼 자신에게 산술 연산을 수행하면 됩니다. 핵심 문법은 SET 컬럼명 = 컬럼명 + 1 형태이며, WHERE 절을 함께 사용하면 원하는 행만 선택적으로 수정할 수 있습니다.
1. 예제 테이블 생성
먼저 실습에 사용할 테이블을 생성해 보겠습니다.
mysql> create table Add1ToExistingValue
-> (
-> Value int
-> );
Query OK, 0 rows affected (0.56 sec)2. 데이터 삽입
INSERT 명령어를 사용하여 테이블에 여러 개의 레코드를 삽입합니다.
mysql> insert into Add1ToExistingValue values(10); Query OK, 1 row affected (0.12 sec) mysql> insert into Add1ToExistingValue values(13); Query OK, 1 row affected (0.15 sec) mysql> insert into Add1ToExistingValue values(15); Query OK, 1 row affected (0.13 sec) mysql> insert into Add1ToExistingValue values(16); Query OK, 1 row affected (0.14 sec) mysql> insert into Add1ToExistingValue values(20); Query OK, 1 row affected (0.16 sec) mysql> insert into Add1ToExistingValue values(40); Query OK, 1 row affected (0.15 sec) mysql> insert into Add1ToExistingValue values(50); Query OK, 1 row affected (0.11 sec) mysql> insert into Add1ToExistingValue values(55); Query OK, 1 row affected (0.17 sec) mysql> insert into Add1ToExistingValue values(56); Query OK, 1 row affected (0.17 sec)
3. 전체 데이터 조회
SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from Add1ToExistingValue;
실행 결과는 다음과 같습니다.
+-------+ | Value | +-------+ | 10 | | 13 | | 15 | | 16 | | 20 | | 40 | | 50 | | 55 | | 56 | +-------+ 9 rows in set (0.00 sec)
4. 기존 값에 1 더하기
다음은 20 이상인 값들에만 1을 더하는 UPDATE 쿼리입니다.
mysql> update Add1ToExistingValue set Value=Value+1 where Value >=20; Query OK, 5 rows affected (0.08 sec) Rows matched: 5 Changed: 5 Warnings: 0
주의: WHERE 절을 생략하면 테이블의 모든 행에 연산이 적용되므로, 특정 조건의 데이터만 수정하려면 반드시 조건절을 지정해야 합니다.
5. 변경 결과 확인
SELECT 문으로 수정된 데이터를 다시 조회해 보겠습니다.
mysql> select *from Add1ToExistingValue;
실행 결과는 다음과 같습니다.
+-------+ | Value | +-------+ | 10 | | 13 | | 15 | | 16 | | 21 | | 41 | | 51 | | 56 | | 57 | +-------+ 9 rows in set (0.00 sec)
WHERE 조건(20 이상)에 해당했던 값들이 각각 21, 41, 51, 56, 57로 정확히 1씩 증가한 것을 확인할 수 있습니다.
추가 팁
- 증가 폭을 조절하고 싶다면
SET Value = Value + 2,SET Value = Value + 10처럼 숫자만 바꾸면 됩니다. - 감소시키려면
SET Value = Value - 1과 같이 마이너스 연산을 사용하면 됩니다. - 여러 컬럼을 한 번에 증가시키는 것도 가능합니다. 예:
SET col1 = col1 + 1, col2 = col2 + 1