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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-15 13:12:02212ブラウズ

How to Efficiently Update or Insert Records in MySQL Based on Their Existence?

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 操作の両方を実行できます。レコードが存在しない場合 (主キーまたは一意のインデックスに基づいて)、レコードが挿入されます。レコードが既に存在する場合、指定された値で更新されます。

各行の影響を受ける行の値は、行が新しい行として挿入されます。

    2 既存の行が更新される場合。
  • 0 既存の行が現在の値に設定される場合。
  • このアプローチは次のとおりです。更新操作と挿入操作を個別に処理するよりも効率的で保守が簡単です。

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

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