ホームページ > データベース > mysql チュートリアル > MySQL の ON DUPLICATE KEY UPDATE を使用して INSERT 中に既存の行を更新するにはどうすればよいですか?

MySQL の ON DUPLICATE KEY UPDATE を使用して INSERT 中に既存の行を更新するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-30 02:30:13
オリジナル
659 人が閲覧しました

How to Update Existing Rows During an INSERT Using MySQL's ON DUPLICATE KEY UPDATE?

「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 サイトの他の関連記事を参照してください。

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