首頁 > 資料庫 > mysql教程 > 如何使用共享相同名稱的行中的資料更新表中的 NULL 值?

如何使用共享相同名稱的行中的資料更新表中的 NULL 值?

Barbara Streisand
發布: 2024-11-12 19:43:02
原創
349 人瀏覽過

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

使用同表兄弟的數據更新行

設想一個具有類似於以下結構的表:

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

您的任務是使用具有相同“NAME”的其他行的資料填充NULL「VALUE」儲存格(即「Test」和「Test2」應該繼承其前身的值)。期望的結果是:

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

挑戰在於引用同一表中共享特定「NAME」值的行。解決方案涉及使用 JOIN 語句:

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
登入後複製

在此語句中,子查詢 (T1) 提取具有非 NULL 和非空「VALUE」值的不同行。然後,主查詢 (t) 在「ID」和「NAME」欄位上與此子查詢連接,以識別要更新的行。因此,空的「VALUE」儲存格將填入具有相同「NAME」值的非空白行中的對應值。

以上是如何使用共享相同名稱的行中的資料更新表中的 NULL 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板