ホームページ  >  記事  >  データベース  >  存在に基づいて MySQL でレコードを更新または挿入するにはどうすればよいですか?

存在に基づいて MySQL でレコードを更新または挿入するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-14 14:14:02325ブラウズ

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;
}

このコードは、「school_art_id」が指定された値と一致する「set_colors」テーブル内のレコードの存在をチェックします。レコードが存在する場合は、指定されたフィールドが更新されます。それ以外の場合は、新しいレコードをテーブルに挿入します。

以上が存在に基づいて MySQL でレコードを更新または挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。