Heim >häufiges Problem >in die Nutzung übergehen
Einfach ausgedrückt geht es darum, festzustellen, ob Daten in der Tabelle vorhanden sind, die die on()-Bedingung erfüllen, die Daten zu aktualisieren, wenn dies der Fall ist, und die Daten einzufügen, wenn dies nicht der Fall ist.
Es gibt eine Tabelle T mit zwei Feldern a und b. Wir möchten Einfügen/Aktualisieren in Tabelle T durchführen. Wenn die Bedingungen erfüllt sind, Aktualisieren Sie dann den Wert von b in T, andernfalls fügen Sie einen Datensatz in T ein. In der SQL-Syntax von Microsoft reicht ein einfacher Satz aus. Die Syntax in SQL Server lautet wie folgt: (Empfohlenes Lernen: MySQL-Video-Tutorial)
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);
Aber es ist offensichtlich Diese Syntax kann nur eine Anweisung für SQL ändern und Oracle kann sie nicht verwenden. Es gibt also die Syntax „Merge into“ (von Oracle 9i eingeführt) „
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……)
“ in einer Merge-Anweisung, die sowohl über die Syntax „Einfügen“ als auch „Aktualisieren“ verfügt. In der Anweisung entspricht die Gesamtzahl der Insert/Update-Datensätze der Anzahl der Datensätze in der „Quelltabelle“ in der Using-Anweisung.
Quelltabelle b kann eine Tabelle mit einer anderen Tabellenstruktur als a sein, es kann eine temporäre Tabelle mit derselben Tabellenstruktur sein oder es können Daten sein, die wir selbst zusammengestellt haben
Weitere technische Artikel zum Thema MySQL finden Sie in der Spalte MySQL Database Graphic Tutorial.
Das obige ist der detaillierte Inhalt vonin die Nutzung übergehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!