ホームページ > データベース > mysql チュートリアル > MySQL で条件付き挿入を実行するにはどうすればよいですか?

MySQL で条件付き挿入を実行するにはどうすればよいですか?

DDD
リリース: 2024-12-25 00:03:11
オリジナル
707 人が閲覧しました

How Can I Perform Conditional Inserts in MySQL?

MySQL の条件付き挿入について

条件付き挿入ステートメントを使用すると、特定の条件が満たされた場合にのみテーブルに新しい行を挿入できます。 MySQL には、条件付き挿入のための専用の構文はありませんが、サブクエリや MERGE ステートメントなどの手法を使用して同じ結果を得ることができます。

サンプル シナリオ: 重複挿入の回避

列 (インスタンス、ユーザー、項目) を含む x_table というテーブルがあるシナリオを考えてみましょう。インスタンス列は一意であるため、特定のユーザーが特定のアイテムをすでに持っている場所に重複した行を挿入することは避けたいと考えています。

たとえば、行 (instance=919191、user=123、 item=456) user=123 の x_table に他の行がない場合に限り、 item=456.

サブクエリと行選択の使用

これを実現するには、サブクエリを使用して重複行の存在を確認します。

このステートメントでは、dual は行が 1 つだけある特別なテーブルです (元々は Oracle にあり、現在は MySQL でも利用可能です)。 SELECT ステートメント内のサブクエリは、値が x_table にまだ存在しない場合に限り、データの 1 行を選択します。

代替: MERGE ステートメントを使用する

MySQLバージョン 8.0 では、専用の MERGE ステートメントも導入されました。これにより、条件付きの挿入、更新、削除を 1 回で処理する便利な方法が提供されます。ステートメント:

MERGE ステートメントは、前の例と同様のサブクエリを使用して、重複行の存在を確認します。行が存在しない場合 (WHEN NOT MATCHED)、挿入操作が実行されます。

以上がMySQL で条件付き挿入を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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