Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich MySQL-Daten, wenn sie vorhanden sind, oder füge sie ein, wenn nicht?

Wie aktualisiere ich MySQL-Daten, wenn sie vorhanden sind, oder füge sie ein, wenn nicht?

Susan Sarandon
Susan SarandonOriginal
2024-11-13 07:16:02961Durchsuche

How to Update MySQL Data if it Exists or Insert if Not?

PHP/MySQL: Aktualisieren, wenn vorhanden, oder Einfügen, wenn nicht

Sie möchten eine MySQL-Tabelle aktualisieren, wenn bestimmte Felder vorhanden sind, oder einfügen, wenn nicht. In diesem Szenario werden drei Tabellen verknüpft: set_colors, school_art und baseimage.

Um das gewünschte Ergebnis zu erzielen, berücksichtigen Sie den folgenden Code:

public function set_layer_colors($value) 
{
    global $db;
    
    $result_array = mysql_query("
        INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
        SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
        FROM school_art 
        JOIN baseimage ON baseimage.base_folder = school_art.series_code 
        WHERE baseimage.image_type = 'B' 
        ON DUPLICATE KEY UPDATE sub_folder = VALUES(sub_folder), layer = VALUES(layer);
    ");

    return $result_array;
}

Dieser aktualisierte Code verwendet INSERT ... ON DUPLICATE KEY UPDATE-Anweisung in MySQL. Es führt die folgenden Aktionen aus:

  • Fügt neue Zeilen ein, wenn das Paar (school_art_id, baseimage_id) nicht gefunden wird.
  • Aktualisiert vorhandene Zeilen, wenn das Paar (school_art_id, baseimage_id) bereits vorhanden ist.
  • Im Falle einer Aktualisierung werden nur die Spalten „sub_folder“ und „layer“ auf die in der VALUES-Klausel bereitgestellten Werte aktualisiert.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich MySQL-Daten, wenn sie vorhanden sind, oder füge sie ein, wenn nicht?. 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