ホームページ > データベース > mysql チュートリアル > フィールドの存在に基づいて MySQL で行を更新または挿入するにはどうすればよいですか?

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

Patricia Arquette
リリース: 2024-11-13 09:58:02
オリジナル
604 人が閲覧しました

How to Update or Insert Rows in MySQL Based on Field Presence?

MySQL: フィールドの存在に基づいた更新または挿入

問題ステートメント

コードでは、set_colors テーブルの行を更新することを目的としています。すでに存在する場合。それ以外の場合は、新しい行を挿入します。ただし、クエリ内で IF EXISTS 条件を利用していますが、これはこのようなシナリオを処理する推奨方法とは一致しません。

解決策

ベースの更新または挿入操作を実行するにはフィールドが存在する場合は、INSERT ... ON DUPLICATE KEY UPDATE 構文の使用を検討してください:

INSERT INTO <table name> (field1, field2, field3, ...) 
VALUES ('value1', 'value2', 'value3', ...)
ON DUPLICATE KEY UPDATE
field1='value1', field2='value2', field3='value3', ...
ログイン後にコピー

説明

この構文では:

  • 行が存在しない場合指定された主キー (または一意のインデックス) が存在しない場合、指定された値が挿入されます。
  • 行がすでに存在する場合、指定されたフィールドは 更新されます を指定された値に追加します。
  • 行が存在し、指定された値が現在の値と同一の場合、アクションは実行されず、影響を受ける行数は 0 になります。

次のクエリは使用法を示しています:

INSERT INTO set_colors (school_art_id, baseimage_id, sub_folder, layer)
VALUES ('1', '2', 'test-folder', '10')
ON DUPLICATE KEY UPDATE
baseimage_id='2',
sub_folder='updated-folder',
layer='15'
ログイン後にコピー
  • school_art_id 1 が存在しない場合、指定された値を含む新しい行が挿入されます。
  • school_art_id 1 がすでに存在する場合、baseimage_id、sub_folder、およびレイヤーのフィールドが指定された値に更新されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート