MySQL Workbench 替换列中的数据

MySQL Workbench replace data in column

我的数据库中有一个名为“1_users”的 table。 table 有一个名为 "origin" 的列。我已经将另一个 table 导入到同一个名为 "old_users" 的数据库中,其布局几乎相同(旧版本)。旧 table 还包含一个名为 "origin".

的列

我现在需要的是将“1_users”中第"origin"列的数据替换为"old_users"中第"origin"列的数据。两个 table 都有一个相同的列 "id",可以作为参考。

我是一个绝对的 mysql 初学者,不懂 sql 语法,但是如果你能告诉我基本的想法,我可以学得很快。我在 mysql workbench.

工作

提前谢谢你,有什么帮助

您可以通过将两个表与 id 列连接起来并在 1_user 中从 old_users 更新原点来实现。

update 1_users
inner join old_users on 1_users.id=old_users.id
set  1_users.origin=old_users.origin;

所以你需要用"old_users"中的数据替换“1_users”table中的数据, 您可以截断“1_users”数据并复制粘贴其中 "old_users" 数据的所有记录(如果您的 ID 字段在两个 table 中具有相同的值并不重要,但是如果您在“1_users”table 中有您想要保留的其他字段,则不应遵循截断。

如果 table “1_users” 有您要维护的其他列字段,则将 “1_users” table 中的字段 "origin" 设置为 NULL然后用 "old_users" "origin" 字段值更新此 table。

您可以从旧的 table "old_users" 更新新的 table“1_users”,如下所示:

UPDATE 1_users
SET 1_users.origin = (SELECT origin FROM old_users WHERE ID = 1_users.ID)

或者,如果只有两列,你可以删除“1_users”中的数据,其中ID为"old_users"的ID,然后INSERT数据从"old_users"到“[=18” =]”(但不推荐)

假设 table "1_users" 在其 "origin" 字段中已经有一些数据,并且您想通过从 [=] 的同一字段复制数据来进行替换操作20=] 通过比较两个 table 的 "id" 字段,您可以执行以下操作:

UPDATE 1_users 
SET origin = old_users.origin 
FROM old_users 
WHERE old_users.id = 1_users.id;

如果目标 table 当前为空,那么您应该改用 INSERT:

INSERT INTO 1_users (origin)
SELECT origin FROM old_users;

如果“1_users”和"old_users"的所有字段都相同,并且“1_users”中需要的数据也与"old_users"相同,您只需删除 table“1_users”并将 "old_users" 重命名为“1_users”。

DROP TABLE 1_users;
RENAME TABLE old_users TO 1_users;