一切動作運行之前,請先備份資料庫!
假設有兩個 table ,依序為 a 跟 b。目的想透過一行 SQL 指令將 a table 中的 value 數值取出並存至 b table 中對應的 value。
a | |
ID | Value |
有 | 有 |
b | |
ID | Value |
有 | 無 |
如果 B 裡頭的 ID 皆出現在 A 裡頭,可用:
UPDATE `b` as B SET B.Value = (
SELECT A.Value
FROM `a` as A
WHERE A.ID = B.ID
);
假設 B 裡出現某個 ID 是 A 沒有的,那上述的動作將會清掉 B 該 ID 在 Table 中原先的數值!要小心處理,若要避免這個現象,需改成:
UPDATE `b` as B , `a` as A SET B.Value = (
SELECT AA.Value
FROM `a` as AA
WHERE AA.ID = B.ID
) where A.ID = B.ID ;
沒有留言:
張貼留言