首頁  >  文章  >  資料庫  >  如何根據欄位存在情況更新或插入 MySQL 中的行?

如何根據欄位存在情況更新或插入 MySQL 中的行?

Patricia Arquette
Patricia Arquette原創
2024-11-13 09:58:02571瀏覽

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

MySQL:根據字段存在情況更新或插入

問題陳述

在程式碼中,您的目標是更新set_colors 表中的行如果它們已經存在。否則,插入新行。但是,您在查詢中使用 IF EXISTS 條件,這與處理此類情況的首選方式不符。

解決方案

根據需要執行所需的更新或插入操作在現場存在時,考慮使用INSERT ... ON DUPLICATE KEY UPDATE 語法:

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

說明

使用此語法:

  • 如果行不指定的主鍵(或唯一索引)不存在,則將使用提供的值插入
  • 如果該行已存在,則將更新指定的欄位 到提供的值。
  • 如果該行存在且提供的值與目前的值相同,則不會執行任何操作,受影響的行數將為 0。

範例

以下查詢示範了用法:

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'
  • 如果school_art_id 1 不存在,它將使用提供的值插入一個新行。
  • 如果 school_art_id 1 已存在,則會將 baseimage_id、sub_folder 和圖層欄位更新為提供的值。

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

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