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

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

Patricia Arquette
发布: 2024-11-13 09:58:02
原创
655 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板