ホームページ >データベース >mysql チュートリアル >MySQL データが存在する場合は更新し、存在しない場合は挿入するにはどうすればよいですか?

MySQL データが存在する場合は更新し、存在しない場合は挿入するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-13 07:16:02950ブラウズ

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

PHP/MySQL: 存在する場合は更新、存在しない場合は挿入

特定のフィールドが存在する場合は MySQL テーブルを更新し、存在しない場合は挿入しようとします。このシナリオには、set_colors、school_art、baseimage の 3 つのテーブルを結合することが含まれます。

目的の結果を達成するには、次のコードを検討してください。

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 列と Layer 列のみが更新されます。 VALUES 句で指定された値。

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

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