ホームページ > データベース > mysql チュートリアル > INSERT ... ON DUPLICATE KEY UPDATE を使用して条件付きでデータを更新する方法

INSERT ... ON DUPLICATE KEY UPDATE を使用して条件付きでデータを更新する方法

Barbara Streisand
リリース: 2024-10-29 17:07:02
オリジナル
646 人が閲覧しました

How to Update Data Conditionally with INSERT ... ON DUPLICATE KEY UPDATE?

条件付き INSERT ... ON DUPLICATE KEY UPDATE

INSERT ... ON DUPLICATE KEY UPDATE を使用する場合、適用が必要になる場合があります。特定の条件が満たされた場合にのみ、条件付きで更新されます。ただし、UPDATE 句での WHERE の使用はサポートされていません。

IF() による回避策

この制限を克服するには、IF( ) 関数を使用して条件を評価し、更新を実行するかどうかを決定します。次の構文は、この回避策を示しています。

INSERT INTO table_name (column1, column2)
VALUES (value1, value2)
ON DUPLICATE KEY UPDATE
  column2 = IF(condition, new_value, old_value);
ログイン後にコピー

例:

次のシナリオを考えてみましょう:

INSERT INTO daily_events (created_on, last_event_id, last_event_created_at)
  VALUES ('2010-01-19', 23, '2010-01-19 10:23:11')
ON DUPLICATE KEY UPDATE
  last_event_id = IF(last_event_created_at < VALUES(last_event_created_at), VALUES(last_event_id), last_event_id);
ログイン後にコピー

この例では、更新to last_event_id は、受信行の last_event_created_at の値がデータベース内の既存の値よりも新しい場合にのみ発生します。これにより、最新のイベントが確実に記録されます。

以上がINSERT ... ON DUPLICATE KEY UPDATE を使用して条件付きでデータを更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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