首頁 >資料庫 >mysql教程 >如何根據存在性更新或插入MySQL中的記錄?

如何根據存在性更新或插入MySQL中的記錄?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-14 14:14:02398瀏覽

How to Update or Insert Records in MySQL Based on Existence?

PHP MySQL:根據存在更新或插入記錄

在MySQL 中,您可能會遇到更新現有記錄或插入新記錄的需要是基於資料庫中是否已存在某些欄位。使用 IF EXISTS 和 ELSE 語句的組合可以有效地處理此任務。

要更新記錄(如果存在)或插入記錄(如果不存在),請考慮以下語法:

IF EXISTS(SELECT * FROM table_name WHERE field = 'value')
  UPDATE table_name SET field1 = 'value1', field2 = 'value2', ...
ELSE
  INSERT INTO table_name (field1, field2, ...) VALUES ('value1', 'value2', ...)

在您的特定場景中,若要根據「school_art」和「baseimage」表中是否存在對應記錄來更新或插入「set_colors」表中的記錄,您可以修改您的程式碼如下:

public function set_layer_colors($value) {
    global $db;

    $result_array = mysql_query("
    IF EXISTS(SELECT * FROM set_colors WHERE school_art_id = '{$value}')
      UPDATE set_colors SET school_art_id = '{$value}', baseimage_id = '{$baseimage_id}', sub_folder = '{$sub_folder}', layer = '{$layer}'
    ELSE
      INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
      VALUES ('{$value}', '{$baseimage_id}', '{$sub_folder}', '{$layer}')
    ");

    return $result_array;
}

此程式碼檢查「set_colors」表中是否存在「school_art_id」與提供的值相符的記錄。如果記錄存在,則更新指定欄位。否則,它將在表中插入一條新記錄。

以上是如何根據存在性更新或插入MySQL中的記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn