mysql - 更新表之间的行

发布于 2024-10-15 02:20:33 字数 554 浏览 2 评论 0原文

我有两个结构相同的表。

old_table 看起来像这样(例如,不是实际的表):

Name  -  DOB  - id
John  -  xxxx - 344

new_table 看起来像这样:

Name  - DOB  - id
John  - 1980 - 344

new_table 填充了 DOB 列。ID 字段(唯一)和结构的其余部分在表之间是相同的。我想用 new_table 中的值更新 old_table 中的 DOB 字段,其中 ID 字段相同(因此在上面的示例中,对于所有行和 id,“id”=344 等)。

我正在考虑使用: INSERT INTO old_table (DOB) SELECT DOB FROM new_table WHERE...

但是后来我的mysql知识逐渐消失。我应该使用 INSERT 还是可以在这里使用 UPDATE?如何仅从 old_table 中提取 DOB 值,其中 ID 字段 = new_table 的 ID 字段?

谢谢..

I have two tables with identical structure.

old_table looks something (example, not actual table) like this:

Name  -  DOB  - id
John  -  xxxx - 344

new_table looks like this:

Name  - DOB  - id
John  - 1980 - 344

Where the new_table has the DOB column filled in. The ID field (unique) and the rest of the structure is the same between tables. I want to update the DOB fields in the old_table with the values from the new_table where the ID fields are the same (so in the above example where the 'id'=344, etc, for all rows and ids).

I was thinking of using:
INSERT INTO old_table (DOB) SELECT DOB FROM new_table WHERE...

but then my mysql knowledge trails off. Should I even be using INSERT or can I use UPDATE here? And how do I only pull the DOB value from the old_table where the ID field = the ID field of the new_table?

Thanks..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰之心 2024-10-22 02:20:33
UPDATE old_table, new_table
    SET old_table.DOB = new_table.DOB
    WHERE old_table.id = new_table.id

编辑:基于OP的评论

UPDATE old_table, new_table
    SET old_table.DOB = new_table.DOB
    WHERE old_table.id = new_table.id
        AND old_table.DOB = 'xxxx'
        AND old_table.field4 = '-'
UPDATE old_table, new_table
    SET old_table.DOB = new_table.DOB
    WHERE old_table.id = new_table.id

EDIT: Based on comment from OP

UPDATE old_table, new_table
    SET old_table.DOB = new_table.DOB
    WHERE old_table.id = new_table.id
        AND old_table.DOB = 'xxxx'
        AND old_table.field4 = '-'
静待花开 2024-10-22 02:20:33

使用更新
UPDATE 旧表 ot set DOB=(从newTable nt中选择DOB,其中nt.id=ot.id)
类似的东西应该有效

use update
UPDATE old table ot set DOB=(select DOB from newTable nt where nt.id=ot.id)
something like that should work

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文