將某欄位資料複製到另一張表或同表另一欄位。本文提供 5 種 SQL 寫法:UPDATE ... LEFT JOIN、UPDATE ... FROM JOIN、相關子查詢、EXISTS 子查詢、INNER JOIN 同步更新,含同表複製簡化語法。
UPDATE file_manager_folder f1
LEFT JOIN file_manager_folder f2
ON f1.name = f2.name AND f2.parentId = 54
SET f1.parentId = 54
WHERE f2.name IS NULL AND f1.id IN (1,2,3);
UPDATE B
SET extra = A.extra
FROM A
JOIN B ON A.id = B.id;
UPDATE b
SET b.sms = (SELECT a.sms FROM a WHERE a.id = b.id);
UPDATE A
SET A.SMS = (SELECT B.SMS FROM B WHERE A.ID = B.ID)
WHERE EXISTS (SELECT 1 FROM B WHERE A.ID = B.ID);
UPDATE tb_1
INNER JOIN tb_2 ON tb_1.tid = tb_2.tid
SET tb_1.tcontent = tb_2.tcontent;
-- 將 A 欄位複製到 B 欄位
UPDATE article SET B = A;
-- 一般寫法
UPDATE tb_1 SET content_target = content_source;
-- 帶條件
UPDATE {table} SET {target} = {source} WHERE {condition};
Subquery returns more than 1 rowLIMIT 5000 或主鍵範圍),避免長鎖定SELECT 驗證影響筆數與資料正確性ANALYZE TABLE 更新統計資訊