首页  >  文章  >  数据库  >  MySQL数据存在如何更新,不存在如何插入?

MySQL数据存在如何更新,不存在如何插入?

Susan Sarandon
Susan Sarandon原创
2024-11-13 07:16:02919浏览

How to Update MySQL Data if it Exists or Insert if Not?

PHP/MySQL:如果存在则更新,如果不存在则插入

如果特定字段存在,则寻求更新 MySQL 表,如果不存在则插入。此场景涉及连接三个表:set_colors、school_art 和 baseimage。

要实现所需的结果,请考虑以下代码:

public function set_layer_colors($value) 
{
    global $db;
    
    $result_array = mysql_query("
        INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
        SELECT school_art.id, baseimage.id, baseimage.sub_folder, baseimage.layer
        FROM school_art 
        JOIN baseimage ON baseimage.base_folder = school_art.series_code 
        WHERE baseimage.image_type = 'B' 
        ON DUPLICATE KEY UPDATE sub_folder = VALUES(sub_folder), layer = VALUES(layer);
    ");

    return $result_array;
}

此更新的代码采用 INSERT ... ON MySQL 中的 DUPLICATE KEY UPDATE 语句。它执行以下操作:

  • 如果未找到(school_art_id,baseimage_id)对,则插入新行。
  • 如果(school_art_id,baseimage_id)对已存在,则更新现有行。
  • 如果进行更新,则仅将 sub_folder 和图层列更新为中提供的值VALUES 子句。

以上是MySQL数据存在如何更新,不存在如何插入?的详细内容。更多信息请关注PHP中文网其他相关文章!

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