>일반적인 문제 >사용법에 병합

사용법에 병합

(*-*)浩
(*-*)浩원래의
2019-06-26 10:41:2116632검색

간단히 말하면 테이블에 on() 조건을 만족하는 데이터가 있는지 확인하여 있으면 데이터를 업데이트하고, 없으면 데이터를 삽입하는 것입니다.

사용법에 병합

두 개의 필드 a와 b가 있는 테이블 T가 있습니다. 테이블 T에 삽입/업데이트를 수행하려고 합니다. 조건이 충족되면 T에서 b 값을 업데이트하고, 그렇지 않으면 T에 레코드를 삽입합니다. . Microsoft의 SQL 구문에서는 간단한 문장이면 충분합니다. SQL Server의 구문은 다음과 같습니다. (권장 학습: MySQL 비디오 튜토리얼)

if exists(select 1 from T where T.a='1001' )
update T set T.b=2 Where T.a='1001'
else
insert into T(a,b) values('1001',2);

하지만 분명히 이 구문은 SQL에 대해 하나의 명령문만 변경할 수 있습니다. 따라서 Merge into(Oracle 9i에 도입된 함수) 구문이 있습니다.

merge into 目标表 a
 
using 源表 b
 
on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)  
 
when matched then update set a.更新字段=b.字段
 
when  not matched then insert into a(字段1,字段2……)values(值1,值2……)

"Insert 및 Update 구문을 모두 포함하는 Merge 문에서 총 삽입/업데이트 레코드 수는 Using 문 "Source 테이블"에 있습니다. 레코드 수"입니다.

소스 테이블 b는 a와 다른 테이블 구조를 가진 테이블일 수도 있고, 동일한 테이블 구조를 가진 임시 테이블일 수도 있고, 우리가 직접 조립한 데이터일 수도 있습니다.

더 많은 MySQL 관련 기술 기사를 확인하세요. MySQL 데이터베이스 그래픽 튜토리얼 칼럼을 방문하여 알아보세요!

위 내용은 사용법에 병합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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