ホームページ >データベース >mysql チュートリアル >MySQL のレコードの存在に基づいてレコードを効率的に更新または挿入するにはどうすればよいですか?
MySQL: 存在に基づいたレコードの更新または挿入
データベースを扱うとき、更新する必要があるシナリオに遭遇するのが一般的です。または、その存在に基づいてレコードを挿入します。 PHP と MySQL を使用している場合、この疑問がよく起こります。
このコンテキストでは、元のクエリは IF EXISTS 構文を使用して update ステートメントと insert ステートメントをマージしようとします。ただし、これは最も効率的なアプローチではありません。
必要な機能を実現するには、INSERT ... ON DUPLICATE KEY UPDATE 構文の使用を検討する必要があります。正しい構文は次のとおりです:
INSERT INTO <table> (field1, field2, field3, ...) VALUES ('value1', 'value2','value3', ...) ON DUPLICATE KEY UPDATE field1='value1', field2='value2', field3='value3', ...
この構文を使用すると、単一のクエリで INSERT 操作と UPDATE 操作の両方を実行できます。レコードが存在しない場合 (主キーまたは一意のインデックスに基づいて)、レコードが挿入されます。レコードが既に存在する場合、指定された値で更新されます。
各行の影響を受ける行の値は、行が新しい行として挿入されます。
以上がMySQL のレコードの存在に基づいてレコードを効率的に更新または挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。