首页  >  文章  >  数据库  >  如何根据存在性更新或插入MySQL中的记录?

如何根据存在性更新或插入MySQL中的记录?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-14 14:14:02326浏览

How to Update or Insert Records in MySQL Based on Existence?

PHP MySQL:根据存在更新或插入记录

在 MySQL 中,您可能会遇到更新现有记录或插入新记录的需要基于数据库中是否已存在某些字段。使用 IF EXISTS 和 ELSE 语句的组合可以有效地处理此任务。

要更新记录(如果存在)或插入记录(如果不存在),请考虑以下语法:

IF EXISTS(SELECT * FROM table_name WHERE field = 'value')
  UPDATE table_name SET field1 = 'value1', field2 = 'value2', ...
ELSE
  INSERT INTO table_name (field1, field2, ...) VALUES ('value1', 'value2', ...)

在您的具体场景中,要根据“school_art”和“baseimage”表中是否存在相应记录来更新或插入“set_colors”表中的记录,您可以修改您的代码如下:

public function set_layer_colors($value) {
    global $db;

    $result_array = mysql_query("
    IF EXISTS(SELECT * FROM set_colors WHERE school_art_id = '{$value}')
      UPDATE set_colors SET school_art_id = '{$value}', baseimage_id = '{$baseimage_id}', sub_folder = '{$sub_folder}', layer = '{$layer}'
    ELSE
      INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
      VALUES ('{$value}', '{$baseimage_id}', '{$sub_folder}', '{$layer}')
    ");

    return $result_array;
}

此代码检查“set_colors”表中是否存在“school_art_id”与提供的值匹配的记录。如果记录存在,则更新指定字段。否则,它将在表中插入一条新记录。

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

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