我正在处理两列中的数据已损坏的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