ホームページ データベース mysql チュートリアル MySQL の INSERT ... ON DUPLICATE KEY UPDATE で条件付き更新を実行する方法

MySQL の INSERT ... ON DUPLICATE KEY UPDATE で条件付き更新を実行する方法

Oct 31, 2024 am 12:13 AM

How to Perform Conditional Updates in MySQL's INSERT ... ON DUPLICATE KEY UPDATE?

INSERT ... ON DUPLICATE KEY UPDATE の条件付き更新

MySQL では、INSERT ... ON DUPLICATE KEY UPDATE 構文により次のことが可能になります。挿入操作中に重複キーが見つかった場合のテーブル データの自動更新。ただし、クエリの UPDATE 部分では、条件付き更新を指定するための WHERE 句の使用はサポートされていません。

IF() を使用した回避策

この制限を克服するには、次のようにします。 IF() 関数を利用して、ON DUPLICATE KEY UPDATE 句内で条件付き更新を実装できます。 IF() 関数は条件を評価し、結果に基づいて別の値を返します。

たとえば、次の INSERT ... ON DUPLICATE KEY UPDATE ステートメントを考えてみましょう。

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);

Inこのステートメントでは、IF() 関数は、データベース テーブルの last_event_created_at 列の値が、挿入される値 (VALUES(last_event_created_at)) より小さいかどうかをチェックします。 true の場合、insert ステートメントからの新しい値で last_event_id 列を更新します。それ以外の場合、既存の値は変更されません。

この回避策では、レプリケーションには適さない可能性がある INSERT/UPDATE/SELECT クエリの組み合わせに頼ることなく、INSERT ... ON DUPLICATE KEY UPDATE ステートメントで条件付き更新が可能になります。シナリオ。

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

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mysqlでcoales()関数を使用する方法は? mysqlでcoales()関数を使用する方法は? Aug 14, 2025 pm 06:15 PM

coalesse()returnSthefirstnon-nullvalueFromalistofexpressions、gracefulful fulful handlingingdatabysubysubtututingdefaults、mergingcolumnvalues、suppeatsoptitionalfields、およびProviding backsinjoinsandaggations、およびProviding foviding backsinginging gregionsulを保証します

MySQLの既存のテーブルに主キーを追加する方法は? MySQLの既存のテーブルに主キーを追加する方法は? Aug 12, 2025 am 04:11 AM

既存のテーブルにプライマリキーを追加するには、AddPrimaryKey句を使用してAlterTableステートメントを使用してください。 1.ターゲット列にヌル値も重複もなく、notnullと定義されていることを確認してください。 2.単一列のプライマリキー構文は、変更可能なテーブル名AddPrimaryKey(列名)です。 3.マルチカラムの組み合わせプライマリキー構文は、変更可能なテーブル名AddPrimaryKeyです(列1、列2)。 4.列がnullを許可する場合、最初に変更を実行してnotnullを設定する必要があります。 5.各テーブルには1つの主キーのみがあり、追加する前に古いプライマリキーを削除する必要があります。 6.自分で増やす必要がある場合は、Modifyを使用してAuto_incrementを設定できます。操作前にデータを確認してください

mysqlのgroup_concatセパレーターを変更する方法 mysqlのgroup_concatセパレーターを変更する方法 Aug 22, 2025 am 10:58 AM

Group_concat()関数のセパレーターキーワードを使用して、セパレーターをカスタマイズできます。 1.セパレーターを使用して、セパレーターなどのカスタムセパレーターを指定します。 'セパレーターは、セミコロンとプラススペースに変更できます。 2.一般的な例には、パイプ文字 '|'、スペース ''、ラインブレイク文字 '\ n'、またはカスタム文字列 ' - >'をセパレーターとして使用することが含まれます。 3.セパレーターは文字列リテラルまたは式である必要があり、結果の長さはgroup_concat_max_len変数によって制限されていることに注意してください。 4。セパレーターはオプションです

MySQLのデータベースをバックアップする方法 MySQLのデータベースをバックアップする方法 Aug 11, 2025 am 10:40 AM

MySQLDUMPを使用することは、MySQLデータベースをバックアップする最も一般的で効果的な方法です。テーブル構造とデータを含むSQLスクリプトを生成できます。 1.基本的な構文は、mysqldump-u [ユーザー名] -p [データベース名]> backup_file.sqlです。実行後、パスワードを入力してバックアップファイルを生成します。 2。-DATABASESオプションを使用して複数のデータベースをバックアップします:mysqldump-uroot-p--databasedb1db2> multive_dbs_backup.sql。 3.すべてのデータベースをバックアップしてください-all-database:mysqldump-uroot-p

MySQLのすべての組合と組合の違いは何ですか? MySQLのすべての組合と組合の違いは何ですか? Aug 14, 2025 pm 05:25 PM

UnionRemovesDulisionallkeepsallowsincludingDuplicates;

MySQLでテーブルをロックする方法 MySQLでテーブルをロックする方法 Aug 15, 2025 am 04:04 AM

テーブルは、ロックテーブルを使用して手動でロックできます。読み取りロックにより、複数のセッションが読み取ることができますが、書き込むことはできません。 Write Lockは、現在のセッションの排他的な読み取りおよび書き込み許可を提供し、他のセッションは読み書きできません。 2。ロックは現在の接続のみです。 StartTransactionおよびその他のコマンドの実行は、暗黙的にロックをリリースします。ロック後、ロックされたテーブルのみにアクセスできます。 3. Myisamテーブルのメンテナンスやデータバックアップなどの特定のシナリオでのみ使用します。 INNODBは、パフォーマンスの問題を回避するための... forupdateなどのトランザクションおよび行レベルのロックを使用することを優先する必要があります。 4。操作が完了した後、ロックテーブルを明示的にリリースする必要があります。そうしないと、リソースの閉塞が発生する可能性があります。

mysqlのテーブルからデータを選択する方法は? mysqlのテーブルからデータを選択する方法は? Aug 19, 2025 pm 01:47 PM

MySQLテーブルからデータを選択するには、Selectステートメントを使用してください。1。selectColumn1、column2fromtable_nameを使用して指定された列を取得するか、選択*を使用してすべての列を取得します。 2。句を使用して、selectname、agefromuserswhereage> 25などの行をフィルタリングします。 3. Orderbyを使用して、OrderByageDescなどの結果を並べ替え、年齢の降順を表します。 4。Limit5などの行数を制限するには、Limit5を制限して最初の5行を返すか、Limit10Offset20を使用してページングを実装します。 5。組み合わせて使用し、括弧

mysqlでifnull()を使用する方法は? mysqlでifnull()を使用する方法は? Aug 22, 2025 pm 02:00 PM

ifnull()inmysqlreturnsthefirstexpressioni itisnotnull、その他wisereturnSteSecondexpression、makingidealforreplacingnullvalueswithdefaults;

See all articles