ホームページ > データベース > mysql チュートリアル > 同じテーブル内の一致する行からテーブル行の値を更新するにはどうすればよいですか?

同じテーブル内の一致する行からテーブル行の値を更新するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-18 01:38:02
オリジナル
498 人が閲覧しました

How to Update Table Row Values from Matching Rows in the Same Table?

同じテーブル内の一致する行からテーブル行の値を更新する

テーブルに必要な非一意の ID と複合キーが含まれている状況では、行の一意性、同じテーブル内の他の行のデータを使用して行値を更新することが課題となる可能性があります。次のシナリオを考えてみましょう:

次のデータを含むテーブルがあるとします:

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2
4 Test
1 Test3 VALUE3

目標は、「Test2」と「Test」の値を他の行のデータで更新することです。同じ 'NAME' (行を識別するために ID は一意ではありません)。期待される出力は次のようになります。

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 VALUE2
4 Test VALUE1
1 Test3 VALUE3

この課題に対処するには、次のクエリを利用できます。

UPDATE data_table dt1, data_table dt2
SET dt1.VALUE = dt2.VALUE
WHERE dt1.NAME = dt2.NAME AND dt1.VALUE = '' AND dt2.VALUE != ''
ログイン後にコピー

このクエリは、同じテーブルの 2 つのインスタンス (data_table のエイリアス) に依存します。 dt1 と dt2) を使用してデータを比較し、更新の対象となる行を特定します:

  • WHEREこの句は、dt1.NAME が dt2.NAME と一致する行をフィルタリングし、同じ 'NAME' 値を持つ行を示します。
  • また、dt1.VALUE が空 ('') である行もチェックし、更新が必要なレコードを示します.
  • 最後に、dt2.VALUE は空ではなく、有効な行からのみ更新が行われるようにします。 values.

その結果、クエリは dt1 の値を dt2 からの一致するデータで更新し、「NAME」が一致する行の空のセルを効率的に設定します。このアプローチにより、同じテーブル内の行値のシームレスな更新が可能になり、最初の課題が解決されます。

以上が同じテーブル内の一致する行からテーブル行の値を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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