0

我正在尝试根据该表中的另一个值更新表中的特定行,但我似乎无法弄清楚如何做到这一点:

UPDATE users AS a SET a.val = (SELECT value FROM users WHERE userid = 4) WHERE a.userID = 1

但我得到了错误

Lookup Error - MySQL Database Error: You can't specify target table 'a' for update in FROM clause

有什么想法我在这里想念的吗?

4

1 回答 1

1

使用JOIN语法和非 equi 连接

UPDATE users a JOIN users b
    ON a.userID = 1
   AND b.userid = 4
   SET a.value = b.value

这是SQLFiddle演示

于 2013-08-15T19:27:33.733 回答