Abrufen der ID für ON DUPLICATE KEY-Updates in MySQL
Beim Ausführen einer INSERT ON DUPLICATE KEY-Abfrage wird die ID der betroffenen Zeile abgerufen kann eine Herausforderung sein. Traditionell erfordert dies die Ausführung einer separaten Abfrage, da LAST_INSERT_ID() normalerweise nur die ID für neu eingefügte Zeilen zurückgibt.
Es gibt jedoch eine Problemumgehung, die die Funktion LAST_INSERT_ID(expr) nutzt. Durch die Übergabe eines Ausdrucks an diese Funktion können Sie deren Ausgabe auch für aktualisierte Zeilen sinnvoll machen.
Die Lösung
So rufen Sie die ID der eingefügten oder aktualisierten Zeile mit ab eine einzelne Abfrage:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE>
Durch Festlegen der ID-Spalte als LAST_INSERT_ID(id) in der UPDATE-Klausel speichert MySQL den neuen AUTO_INCREMENT-Wert in id-Spalte für eingefügte und aktualisierte Zeilen.
Damit können Sie die ID des letzten Vorgangs abrufen (entweder eine Einfügung oder ein Update), indem Sie einfach LAST_INSERT_ID() aufrufen. Es kombiniert effektiv die Funktionalität von INSERT- und UPDATE-Anweisungen in einer einzigen Abfrage.
Das obige ist der detaillierte Inhalt vonWie kann ich die ID einer betroffenen Zeile nach einem INSERT ON DUPLICATE KEY UPDATE in MySQL abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!