如何在 MySQL 中使用单个选择查询更新多个列?

May*_*dya 0 mysql sql database

举个例子,有两个表,如下所示。

OldData
-----------
    id
    name
    address

NewData
-----------
    nid
    name
    address
Run Code Online (Sandbox Code Playgroud)

我想用OldData表更新表NewData

为此,我尝试使用以下查询:

UPDATE OldData SET (name, address) = (SELECT name, address FROM NewData WHERE nid = 234)
WHERE id = 123
Run Code Online (Sandbox Code Playgroud)

但它给出了语法错误。

做我尝试的事情的正确方法是什么?

Pra*_*nan 5

UPDATE OldData o, NewData n 
SET n.name = o.name, n.address = o.address 
where n.nid=234 and o.id=123;
Run Code Online (Sandbox Code Playgroud)