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

同じ名前の他の行に基づいてテーブル内の空の値を更新するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-17 10:15:041070ブラウズ

How do I update empty values in a table based on other rows with the same name?

同じテーブル内の他の行のデータで行を更新

ID と NAME の複合キーを持つテーブルで、行は同じ NAME に複数の ID 値と空の VALUE フィールドを含めることができます。タスクは、同じ NAME を持つ他の行のデータで空の VALUE フィールドを更新することです。 value.

クエリ:

これを実現するには、次のクエリを使用できます:

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME

説明:

  • サブクエリ (SELECT DISTINCT ID, NAME, VALUE FROM data_table WHERE VALUE IS NOT NULL AND VALUE != '') は、VALUE 列が空または null ではない個別の行を data_table から取得します。
  • メインの UPDATE ステートメントは、data_table (別名 t) を次の行と結合します。 ID と NAME に対するサブクエリ (t1 というエイリアス) columns.
  • 両方のテーブルの一致する行ごとに、t の VALUE 列が t1 の VALUE で更新されます。

出力:

クエリは空の VALUE フィールドを同じ NAME を持つ他の行の値で更新し、結果として目的の結果が得られます。出力:

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

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

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