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 중국어 웹사이트의 기타 관련 기사를 참조하세요!