비실이의 개발 성장기

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

DB/MySQL

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

DubbingLee 2018. 4. 4. 21:49




예시



테이블 명: TEST 


idx 

name 

age 

 1

GIM 

25 

 2

LEE 

27 

 3

PARK

30 


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




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




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


1
2
3
4
5
6
7
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 (13);
cs



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




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




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



idx 

name 

age 

 1

KIM 

NULL 

 2

NULL 

NULL 

 3

NULL

29




3 Comments
댓글쓰기 폼