MySQL: 여러 행을 효율적으로 업데이트
질문: 여러 MySQL 행을 동시에 업데이트할 수 있습니까?
답변: 물론입니다! INSERT ... ON DUPLICATE KEY UPDATE
문은 효율적인 솔루션을 제공합니다.
예시:
다음과 같이 구성된 테이블이 있고 몇 가지 업데이트를 적용해야 한다고 가정해 보겠습니다.
Name | id | Col1 | Col2 |
---|---|---|---|
Row1 | 1 | 6 | 1 |
Row2 | 2 | 2 | 3 |
Row3 | 3 | 9 | 5 |
Row4 | 4 | 16 | 8 |
필수 업데이트:
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
:
여러 개의 개별 UPDATE
문 대신 보다 효율적인 단일 쿼리를 사용하여 동일한 결과를 얻을 수 있습니다.
<code class="language-sql">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);</code>
이 쿼리는 새 행을 삽입하려고 시도합니다. 지정된 id
이 있는 행이 이미 존재하는 경우(id
의 기본 키 또는 고유 인덱스로 인해) ON DUPLICATE KEY UPDATE
절이 적용되어 제공된 값을 기반으로 Col1
및 Col2
값이 업데이트됩니다. VALUES()
절에. 이 방법은 개별 UPDATE
문을 여러 개 실행하는 것에 비해 성능이 크게 향상됩니다.
위 내용은 여러 MySQL 행을 동시에 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!