728x90


출처: https://2dubbing.tistory.com/51 [비실이의 개발공간]

 

여러개의 row(record) 일괄 update 쿼리문

예시 테이블 명: TEST idx name age  1 GIM 25  2 LEE 27  3 PARK 30 위 테이블에서 idx가 1인 row의 컬럼 name 값을 KIM으로, idx가 3인 row의 컬럼 age 값을 29 로 변경 이 경우 아래와 같이 쿼리를 구성..

2dubbing.tistory.com

 

예시

 

테이블 명: TEST 

 

idx 

name 

age 

 1

GIM 

25 

 2

LEE 

27 

 3

PARK

30 

 

위 테이블에서 idx가 1인 row의 컬럼 name 값을 KIM으로, 

 

 

 

idx가 3인 row의 컬럼 age 값을 29 로 변경

 

 

 

이 경우 아래와 같이 쿼리를 구성하여 처리한다.

 

UPDATE  TEST
SET
  name = CASE idx WHEN 1 THEN 'KIM' ELSE name END,
  age = CASE idx WHEN 3 THEN 29 ELSE age END

WHERE  idx IN (1, 3);

 

4번째 라인을 보면 ELSE 구문이 있는데  이 쿼리를 해석해보면 아래와 같다.

 

 

`idx가 1인 row의 컬럼 name의 값을 'KIM' 으로 변경하고, idx가 1이 아닌 row의 컬럼 name은 이전 값을 유지`

 

 

만약 위 쿼리에서 ELSE 구문을 모두 지운 뒤에 쿼리를 수행하면 아래와 같이 바뀌게된다.

 

 

idx 

name 

age 

 1

KIM 

NULL 

 2

NULL 

NULL 

 3

NULL

29

 

728x90

'Dev > DB' 카테고리의 다른 글

Oracle - OVER() 함수 설명  (0) 2020.08.26
[MySQL] Linux 언어설정 변경 (LATIN 1 -> EUCKR)  (0) 2020.07.20
[MySQL] batch작업  (0) 2020.07.02
[MySQL/Oracle] Merge Into 관련 (ON DUPLICATE KEY)  (0) 2020.06.30
[MyBatis] Like 처리 방법  (0) 2020.06.30

+ Recent posts