Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie aktualisiere oder füge ich Zeilen in MySQL basierend auf der Feldpräsenz ein?

Patricia Arquette
Freigeben: 2024-11-13 09:58:02
Original
570 Leute haben es durchsucht

How to Update or Insert Rows in MySQL Based on Field Presence?

MySQL: Aktualisieren oder Einfügen basierend auf der Feldpräsenz

Problemstellung

In Ihrem Code möchten Sie Zeilen in der Tabelle „set_colors“ aktualisieren wenn sie bereits existieren. Andernfalls fügen Sie neue Zeilen ein. Sie verwenden jedoch die Bedingung IF EXISTS in der Abfrage, die nicht mit der bevorzugten Vorgehensweise zur Behandlung solcher Szenarien übereinstimmt.

Lösung

So führen Sie den gewünschten Aktualisierungs- oder Einfügevorgang basierend aus Erwägen Sie bei Feldpräsenz die Verwendung von INSERT ... ON DUPLICATE KEY UPDATE Syntax:

INSERT INTO <table name> (field1, field2, field3, ...) 
VALUES ('value1', 'value2', 'value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...
Nach dem Login kopieren

Erklärung

Mit dieser Syntax:

  • Wenn die Zeile nicht mit dem angegebenen Primärschlüssel (oder eindeutigen Index) existiert, wird sie wird mit den bereitgestellten Werten eingefügt.
  • Wenn die Zeile bereits vorhanden ist, werden die angegebenen Felder angezeigt aktualisiertauf die bereitgestellten Werte.
  • Wenn die Zeile vorhanden ist und die bereitgestellten Werte mit den aktuellen identisch sind, wird keine Aktion ausgeführt und die Anzahl der betroffenen Zeilen beträgt 0.

Beispiel

Die folgende Abfrage demonstriert das Verwendung:

INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
VALUES ('1', '2', 'test-folder', '10')
ON DUPLICATE KEY UPDATE
baseimage_id='2',
sub_folder='updated-folder',
layer='15'
Nach dem Login kopieren
  • Wenn school_art_id 1 nicht existiert, wird eine neue Zeile mit den bereitgestellten Werten eingefügt.
  • Wenn school_art_id 1 bereits existiert, wird die baseimage_id aktualisiert , sub_folder und Layer-Felder auf die bereitgestellten Werte.

Das obige ist der detaillierte Inhalt vonWie aktualisiere oder füge ich Zeilen in MySQL basierend auf der Feldpräsenz ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage