MySQL의 INSERT
문을 사용하면 여러 행의 데이터를 동시에 삽입할 수 있습니다. 하지만 단일 쿼리로 여러 행을 업데이트할 수 있나요?
예, INSERT ... ON DUPLICATE KEY UPDATE
문을 사용하여 여러 행을 한 번에 업데이트할 수 있습니다. 테이블에 행이 삽입되고 기본 키 또는 고유 키가 이미 존재하는 경우 다음이 발생합니다.
INSERT
문에 DUPLICATE KEY UPDATE
절이 포함된 경우 업데이트 절에 제공된 값을 사용하여 기존 행이 업데이트됩니다. INSERT
문에 DUPLICATE KEY UPDATE
절이 없으면 오류가 발생합니다. 다음 형식을 고려하세요.
Name | id | Col1 | Col2 |
---|---|---|---|
Row1 | 1 | 6 | 1 |
Row2 | 2 | 2 | 3 |
Row3 | 3 | 9 | 5 |
Row4 | 4 | 16 | 8 |
다음 업데이트를 단일 쿼리로 결합하고 싶습니다.
<code class="language-sql">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;</code>
INSERT ... ON DUPLICATE KEY 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>
이 쿼리는 행이 아직 없으면 새 행을 삽입하고, 기본 키가 테이블에 이미 있으면 기존 행을 업데이트합니다.
위 내용은 MySQL은 단일 쿼리에서 여러 행을 업데이트할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!