Heim >Datenbank >MySQL-Tutorial >Wie kann MySQLs ON DUPLICATE KEY UPDATE die betroffene Zeilen-ID zurückgeben?

Wie kann MySQLs ON DUPLICATE KEY UPDATE die betroffene Zeilen-ID zurückgeben?

Susan Sarandon
Susan SarandonOriginal
2024-12-16 18:49:18452Durchsuche

How Can MySQL's ON DUPLICATE KEY UPDATE Return the Affected Row ID?

Kann MySQL ON DUPLICATE KEY die zuletzt eingefügte oder aktualisierte ID zurückgeben?

In MySQL ist die INSERT ... ON DUPLICATE KEY UPDATE-Anweisung ermöglicht Einfüge- oder Aktualisierungsvorgänge innerhalb einer einzelnen Abfrage. Allerdings kann es schwierig sein, die ID der betroffenen Zeile zu ermitteln.

Normalerweise gibt die Funktion LAST_INSERT_ID() die ID des neu eingefügten Datensatzes zurück. Nach einem Update-Vorgang bleibt es bedeutungslos. Um dieses Problem zu lösen, können Sie einen Ausdruck mit LAST_INSERT_ID() nutzen, wie in der MySQL-Dokumentation beschrieben.

Erstellen Sie insbesondere einen Ausdruck, der das ID-Feld (in diesem Beispiel eine AUTO_INCREMENT-Spalte) aktualisiert und LAST_INSERT_ID(expr ) als Ausdruck, um ihm eine Bedeutung zu geben Aktualisierungen.

Beispiel:

Betrachten Sie eine Tabelle mit einer ID-Spalte als AUTO_INCREMENT. So aktualisieren oder fügen Sie Zeilen ein und rufen die betroffene ID ab:

INSERT INTO table (a, b, c) VALUES (1, 2, 3)
ON DUPLICATE KEY UPDATE id = LAST_INSERT_ID(id), c = 3;

Dieser Ansatz stellt sicher, dass LAST_INSERT_ID() unabhängig von Einfüge- oder Aktualisierungsvorgängen die ID der betroffenen Zeile bereitstellt, sodass keine zweite Abfrage erforderlich ist die ID.

Das obige ist der detaillierte Inhalt vonWie kann MySQLs ON DUPLICATE KEY UPDATE die betroffene Zeilen-ID zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn