서방님 avatar

MySQL의 다중 업데이트

seobangnim

Published: 17 May 2018 › Updated: 17 May 2018MySQL의 다중 업데이트

MySQL의 다중 업데이트

한 번에 여러 행을 MySQL에서 업데이트하는 방법이 있을까?

예를 들어 나는 다음과 같은 테이블 구조가 있을 때,

NameidCol1Col2
Row1161
Row2223
Row3395
Row44168

다음의 5가지 쿼리를 하나의 쿼리로 결합하려고 한다면?

UPDATE table SET Col1 = 1 WHERE id = 1;
UPDATE table SET Col1 = 2 WHERE id = 2;
UPDATE table SET Col2 = 3 WHERE id = 3;
UPDATE table SET Col1 = 10 WHERE id = 4;
UPDATE table SET Col2 = 12 WHERE id = 4;

문제 해결!

INSERT ... ON DUPLICATE KEY UPDATE 를 사용해 보자.

예제 :

INSERT INTO table (id,Col1,Col2) VALUES (1,1,1),(2,2,3),(3,9,3),(4,10,12)
ON DUPLICATE KEY UPDATE Col1=VALUES(Col1),Col2=VALUES(Col2);

위 문제에 대한 해결은?

UPDATE table SET Col1 = CASE id 
                          WHEN 1 THEN 1 
                          WHEN 2 THEN 2 
                          WHEN 4 THEN 10 
                          ELSE Col1 
                        END, 
                 Col2 = CASE id 
                          WHEN 3 THEN 3 
                          WHEN 4 THEN 12 
                          ELSE Col2 
                        END
             WHERE id IN (1, 2, 3, 4);

위 방법으로 1개 쿼리로 다중 업데이트를 진행할 수 있다!

Leave MySQL의 다중 업데이트 to:

Written by

Read more #mysql posts


Best Posts From 서방님

We have not curated any of seobangnim's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From 서방님