首页  >  文章  >  数据库  >  如何根据字段存在情况更新或插入 MySQL 中的行?

如何根据字段存在情况更新或插入 MySQL 中的行?

Patricia Arquette
Patricia Arquette原创
2024-11-13 09:58:02576浏览

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 、子文件夹和图层字段设置为提供的值。

以上是如何根据字段存在情况更新或插入 MySQL 中的行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn