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

MySQL에서 변수에 담긴 정수 값을 열에 더하는 방법

MySQL에서 변수를 선언하려면 SET 문을 사용합니다. 그리고 변수에 저장된 정수 값을 특정 열의 기존 값에 더하려면 UPDATE 문과 SET 절을 함께 활용하면 됩니다.

기본 문법

set @anyVariableName:=yourValue;
update yourTableName set yourColumnName=yourColumnName+ @yourVariableName;

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

1. 테이블 생성

mysql> create table DemoTable
-> (
-> Number int
-> );
Query OK, 0 rows affected (0.68 sec)

2. 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

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

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

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

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

3. 현재 데이터 확인

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

mysql> select *from DemoTable;

출력 결과

+--------+
| Number |
+--------+
| 10     |
| 20     |
| 40     |
| 60     |
+--------+
4 rows in set (0.00 sec)

변수 값을 열에 더하는 쿼리

이제 변수에 정수 값을 할당한 뒤, 해당 값을 열 전체에 더하는 실제 쿼리입니다.

mysql> set @intValue:=100;
Query OK, 0 rows affected (0.00 sec)

mysql> update DemoTable set Number=Number+ @intValue;
Query OK, 4 rows affected (0.15 sec)
Rows matched: 4 Changed: 4 Warnings: 0

위 쿼리에서는 먼저 @intValue라는 사용자 변수에 100을 할당했습니다. 이후 UPDATE 문을 실행하여 Number 열의 모든 행에 100씩 더했습니다.

결과 확인

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

mysql> select *from DemoTable;

출력 결과

+--------+
| Number |
+--------+
| 110    |
| 120    |
| 140    |
| 160    |
+--------+
4 rows in set (0.00 sec)

출력 결과에서 볼 수 있듯이, 모든 행의 값이 정확히 100씩 증가했습니다(10→110, 20→120, 40→140, 60→160). 이처럼 MySQL의 사용자 정의 변수와 UPDATE 문을 조합하면, 별도의 애플리케이션 로직 없이 데이터베이스 차원에서 간단하게 일괄적인 산술 연산을 처리할 수 있습니다.