>데이터 베이스 >MySQL 튜토리얼 >이름이 같은 다른 행을 기반으로 하는 테이블의 빈 값을 어떻게 업데이트합니까?

이름이 같은 다른 행을 기반으로 하는 테이블의 빈 값을 어떻게 업데이트합니까?

DDD
DDD원래의
2024-11-17 10:15:041070검색

How do I update empty values in a table based on other rows with the same name?

동일 테이블에 있는 다른 행의 데이터로 행 업데이트

ID와 NAME의 복합 키가 있는 테이블에서 행은 다음과 같습니다. 동일한 NAME에는 여러 개의 ID 값과 빈 VALUE 필드가 있을 수 있습니다. 작업은 동일한 NAME 값을 가진 다른 행의 데이터로 빈 VALUE 필드를 업데이트하는 것입니다.

쿼리:

이를 달성하려면 다음 쿼리를 사용할 수 있습니다.

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME

설명:

  • 하위 쿼리(SELECT DISTINCT ID, NAME, VALUE FROM data_table WHERE VALUE IS NOT NULL AND VALUE != '')는 VALUE 열이 비어 있거나 null이 아닌 data_table에서 고유 행을 검색합니다.
  • 기본 UPDATE 문은 data_table(별칭 t)을 하위 쿼리와 조인합니다. (t1로 별칭)을 ID 및 NAME 열에 적용합니다.
  • 두 테이블의 일치하는 각 행에 대해 t의 VALUE 열은 t1의 VALUE로 업데이트됩니다.

출력:

쿼리는 빈 VALUE 필드를 동일한 NAME을 가진 다른 행의 값으로 업데이트하여 원하는 출력을 얻습니다.

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 VALUE2
4 Test VALUE1
1 Test3 VALUE3

위 내용은 이름이 같은 다른 행을 기반으로 하는 테이블의 빈 값을 어떻게 업데이트합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.