Published: 17 May 2018 › Updated: 17 May 2018

MySQL의 다중 업데이트
한 번에 여러 행을 MySQL에서 업데이트하는 방법이 있을까?
예를 들어 나는 다음과 같은 테이블 구조가 있을 때,
| Name | id | Col1 | Col2 |
|---|---|---|---|
| Row1 | 1 | 6 | 1 |
| Row2 | 2 | 2 | 3 |
| Row3 | 3 | 9 | 5 |
| Row4 | 4 | 16 | 8 |
다음의 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:
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.