如何在 MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 實現條件更新?

Patricia Arquette
發布: 2024-10-31 06:42:30
原創
608 人瀏覽過

How to Implement Conditional Updates in MySQL's INSERT ... ON DUPLICATE KEY UPDATE?

INSERT ... ON DUPLICATE KEY 更新中的條件更新

在MySQL 中,INSERT ... ON DUPLICATE KEY UPDATE 語句允許您如果具有相同唯一鍵的行已存在,則插入新行或更新現有行。但是,有時您可能會要求更新部分是有條件的,僅在滿足特定條件時才執行。

不幸的是,ON DUPLICATE KEY UPDATE 語法不支援 WHERE 子句。若要克服此限制,您可以在 UPDATE 子句中使用 IF() 函數。

IF() 函數採用三個參數:一個條件、條件為 true 時要傳回的值、要傳回的值。如果條件為假則回傳。這允許您指定一個條件來檢查額外條件是否已更改,然後有條件地設定要更新的值。

例如,考慮以下語句:

INSERT INTO daily_events (created_on, last_event_id, last_event_created_at)
VALUES ('2010-01-19', 23, '2010-01-19 10:23:11')
ON DUPLICATE KEY UPDATE
  last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
登入後複製

中在此語句中,只有當現有行的last_event_created_at 列早於VALUES 子句中的值時,才會更新last_event_id 列。否則,last_event_id 將保持不變。

以上是如何在 MySQL 的 INSERT ... ON DUPLICATE KEY UPDATE 實現條件更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!