如何根据同一个表中的另一行更新?

时间:2011-10-04 09:04:06

标签: mysql sql-update correlated-subquery

我想创建一个查询,根据id为1的行的int更新int。

我已尝试过此查询,但它表示我无法在更新语句中标记该表。但是我如何在子查询中引用它?

update t1 a set `int1` = (select `int1` from t1 b where b.id=a.id+1);

如何克服我无法使用别名?

1 个答案:

答案 0 :(得分:2)

试试这个 -

UPDATE
  t1 a
  JOIN t1 b
    ON b.id = a.id + 1
SET
  a.int1 = b.int1;

如果id值中存在漏洞,则可能会更改查询。