如何一次更新多个记录MySQL

时间:2015-10-02 12:17:17

标签: mysql sql-update

我有2个数据库,一个是旧的,另一个是最近更新和使用的新数据库,但是我的一个团队成员错误地更新了旧数据库中的一些内容,现在我们正试图找到一种方法,如何从旧数据库中提取该数据库并更新新数据库。

我的2 db在结构上是相同的,除非我从两个表中删除了更改的ID的标题,我得到的标题不同,但其余的相同。

有人可以帮忙吗? 我所拥有的是一个旧表中的ID列表,它已被更改了大约2000条记录,我需要的是一个mysql脚本,它将循环通过所有这些记录并使用该记录更新新的数据库内容。

两个表中的表结构是:

ID, title, content 

所以我尝试这样的事情:

UPDATE `dbA`.table SET `dbA`.content = `dbB`.contet WHERE `dbB`.`ID` BETWEEN 0 AND 2000

4 个答案:

答案 0 :(得分:2)

您可以使用以下方法实现它:

UPDATE tableA A
JOIN tableB B
    ON B.id = A.id
SET A.content = B.content
WHERE B.id BETWEEN 0 AND 2000

答案 1 :(得分:1)

你说不同的数据库 - 但它们是否在同一个MySQL实例上?如果没有,你可以通过FEDERATED引擎暴露吗?

如果是这种情况,您只需将2000个ID加载到新表中......

REPLACE INTO newdb.table (id, content, title)
SELECT o.id, o.content, o.title
FROM olddb.table o
INNER JOIN olddb.changed_ids c
ON o.id=c.id;

答案 2 :(得分:0)

如果您尝试手动执行此操作,这可能是一项非常艰巨的任务。

您可以尝试使用某种工具,例如coldiff

答案 3 :(得分:0)

你有没有试过这样的东西?

UPDATE `dbA`.table1 t1
JOIN `dbB`.table2 t2
    ON t1.id = t2.id
SET t1.content = t2.content