我正在處理兩列中的數據已損壞的1000+行表(table_corrupted
)。幸運的是,我有一張過時的備份表,其中這兩列完好無損(table_outdated
)。所以我想:爲什麼不只是替換這兩列中的值,而保持原樣?將值從一個表複製到另一個表中相同的ID
比方說table_corrupted
& table_outdated
都有5列:
id
(INT),name
(文本),lat
(雙),lon
(雙),comment
(文本)
insert into `table_corrupted` (`lat`,`lon`)
select `lat`,`lon` from `table_outdated`
WHERE `table_corrupted`.`id` = `table_outdated`.`id`;
。此錯誤的結果:「未知列'table_corrupted.id'In Where子句」
經過一番研究後,我發現這是因爲SQL是從右向左評估的。說實話,我沒有找出解決方案 - 任何建議?我究竟做錯了什麼?
你有誤診這一點。嘗試查詢UPDATE語句(這些可以讓您更改現有行中的現有值,而不是插入新行)。 – MatBailie
你完全正確,MatBailie!我很愚蠢:-p – Jonas