> 데이터 베이스 > MySQL 튜토리얼 > 단일 SQL 쿼리에서 여러 레코드를 어떻게 업데이트할 수 있습니까?

단일 SQL 쿼리에서 여러 레코드를 어떻게 업데이트할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-08 00:59:11
원래의
282명이 탐색했습니다.

How Can I Update Multiple Records in a Single SQL Query?

SQL의 다중 레코드 업데이트

특정 테이블에서 여러 레코드를 업데이트해야 하는 시나리오가 발생한다고 가정해 보겠습니다. 이를 달성하려면 적절한 SQL 구문을 활용해야 합니다. 이 예에서는 config_name 및 config_value에 대한 열이 포함된 config 테이블을 활용합니다.

처음에는 다음 쿼리를 사용하여 업데이트를 수행하려고 했습니다.

UPDATE config 
SET t1.config_value = 'value'
  , t2.config_value = 'value2' 
WHERE t1.config_name = 'name1' 
  AND t2.config_name = 'name2';
로그인 후 복사

그러나 이 쿼리는 동일한 테이블 별칭(t1 및 t2)을 사용하여 다른 레코드를 업데이트하려고 시도하므로 올바르지 않습니다. 이 문제를 해결하려면 다중 테이블 업데이트 구문이나 조건부 업데이트 방법을 활용할 수 있습니다.

다중 테이블 업데이트 구문:

UPDATE config t1 JOIN config t2
    ON t1.config_name = 'name1' AND t2.config_name = 'name2'
   SET t1.config_value = 'value',
       t2.config_value = 'value2';
로그인 후 복사

이 쿼리는 별칭 t1 및 t2를 사용하여 config 테이블을 두 번 만든 다음 ON 절을 사용하여 조인 조건을 지정합니다. 그런 다음 SET 절은 적절한 열에 새 값을 할당합니다.

조건부 업데이트:

UPDATE config
   SET config_value = CASE config_name 
                      WHEN 'name1' THEN 'value' 
                      WHEN 'name2' THEN 'value2' 
                      ELSE config_value
                      END
 WHERE config_name IN('name1', 'name2');
로그인 후 복사

이 쿼리는 CASE 문을 사용하여 서로 다른 config_name에 서로 다른 값을 지정합니다. 가치. WHERE 절은 업데이트가 config_name이 'name1' 또는 'name2'인 레코드에만 영향을 미치도록 제한합니다.

이러한 방법은 단일 쿼리에서 여러 레코드를 업데이트하는 효과적인 방법을 제공합니다. 적절한 구문을 활용하면 SQL 데이터베이스의 데이터를 효율적으로 수정할 수 있습니다.

위 내용은 단일 SQL 쿼리에서 여러 레코드를 어떻게 업데이트할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿