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 サイトの他の関連記事を参照してください。