複雑なテーブルでの更新/挿入: 複数の列の更新
複数の列で更新/挿入操作を実行する場合、複数の列を使用するのが効率的かどうかという問題が生じます。更新部分の select ステートメント。技術的には可能ですが、より良いアプローチが利用可能です。
次の例を考えてみましょう。
INSERT INTO `item` (`item_name`, items_in_stock) VALUES('A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = 27 + (SELECT items_in_stock where item_name = 'A')
このクエリは、指定されたアイテムの既存の値に入荷数量を効果的に追加します。ただし、副選択は不要です。
クエリの修正バージョンは次のとおりです。
INSERT INTO `item` (`item_name`, items_in_stock) VALUES( 'A', 27) ON DUPLICATE KEY UPDATE `new_items_count` = `new_items_count` + 27
副選択を省略することで、クエリは ON をトリガーした行を参照する MySQL の機能を利用します。キーを複製するアクション。これにより、追加の選択ステートメントの必要性がなくなり、更新プロセスが合理化されます。
多くの場合、シンプルさが効率的な操作の鍵となることに注意してください。利用可能なオプションを慎重に検討し、不必要な複雑さを回避することで、パフォーマンスとコードの可読性を確保するために upsert クエリを最適化できます。
以上が複雑なテーブルのアップサートには複数の SELECT ステートメントを使用するのが効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。