首頁 >資料庫 >mysql教程 >如何根據同名的其他行更新表中的空值?

如何根據同名的其他行更新表中的空值?

DDD
DDD原創
2024-11-17 10:15:041078瀏覽

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

使用同一表中其他行的資料更新行

在具有ID 和NAME 複合鍵的表中,其中包含相同的NAME可以有多個ID 值和空VALUE 字段,任務是使用具有相同NAME 值的其他行的資料更新空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 != '') 從 data_table 擷取 VALUE 資料列不為空或 null 的不同行。
  • 主 UPDATE 語句將 data_table(別名 t)與子查詢連接起來(別名 t1)在 ID 和 NAME 欄位上。
  • 對於兩個表中的每個符合行,t 中的 VALUE 欄位將使用 t1 中的 VALUE 進行更新。

輸出:

查詢使用具有相同名稱的其他行的值更新空VALUE 字段,從而產生所需的輸出:

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

以上是如何根據同名的其他行更新表中的空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn