「INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE」を使用する
MySQL で挿入操作を実行する場合、一意のキーの競合が発生した場合に、既存の行を更新することができます。これは、「INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE」構文を使用して実現できます。
指定されたクエリでは、一時テーブル ('tmp') から行を挿入することを目的としています。 「lee」テーブルに追加します。同じ一意のキー (この場合は「id」) を持つ行がすでに 'lee' に存在する場合、クエリは特定の列を 'tmp' テーブルの値に更新する必要があります。
UPDATE の構文このシナリオの句は次のとおりです:
ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...
ここで、「column1」は 'lee' テーブルの列を指します。 「SELECT_column1」は、SELECT 句内の対応する列を指します。これらのペアを指定することにより、MySQL は SELECT からの新しい値でどのカラムを更新するかを決定します。
指定されたクエリの場合、UPDATE 句は次のようになります。
ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptydur, emptydur=t.emptydur
これにより、列「entct」、「inact」、「inadur」などは、重複キーが存在する場合、一時テーブル内の対応する列の値で更新されます。
に遭遇しました。以上がMySQL の ON DUPLICATE KEY UPDATE を使用して INSERT 中に既存の行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。