MySQL 仅导入一列到现有表

标签 mysql

我遇到以下问题。

我有一个包含以下字段的表(示例):

id, id2, id3, id4

由于错误,我不小心删除了id3的所有值。 (它们现在是NULL)。

我有第二个文件(备份),它有点旧,所以它的计数与损坏的表不同。 id3 就在那里。

我如何“连接”这些表,以至少恢复较大的部分?仅将 id3 从未损坏的表插入到损坏的表中?

我尝试过这个:

UPDATE table1 SET `id3` = SELECT `id3` FROM table2

就我而言,只有 phpMyAdmin 或 SQL 语法解决方案(无控制台)可以工作...

请帮忙!

最佳答案

如果我们假设一个、两个或三个 id 定义每一行,那么您可以使用 join:

update table1 t1 join
       table2 t2
       on t1.id = t2.id
    set t1.id3 = t2.id3;

这假设 id 在两个表中是唯一的。您可能想使用更复杂的表达式:

update table1 t1 join
       table2 t2
       on t1.id = t2.id and t1.id2 = t2.id2 and t1.id4 = t2.id4
    set t1.id3 = t2.id3;

关于MySQL 仅导入一列到现有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37374667/

相关文章:

php - PHP 上的最大上传文件大小不起作用的错误

mysql - 数据表 JSON 解析错误 - 访问被拒绝

mysql - 三个或更多表 JOIN USING USING common key

PHP、MYSQL,根据 3 个下拉列表中的所有值为 true 选择结果

mysql - Phusion 乘客 - ActiveRecord::PendingMigrationError

mysql - 安装 Varnish 后 PHPmyadmin 不工作

mysql - 连接表(1 :n) with considering two records from the second table

php - 从 SQL 查询创建 JSON 表

php - MySQL 查询返回带有 AES_ENCRYPT 的空白字段

PHP/Mysql 加载数据本地 Infile