mysql更新行,包含上一行的信息

时间:2014-08-20 11:49:18

标签: mysql sql sql-update

经过一段时间的搜索,我找到的答案都没有帮助。 我有一个带有值的表,现在我想像这样更新表:

set Rowx, Col3 to Rowx-1, Col2

我一直在尝试使用SQL Fiddle做类似的事情,但我无法弄明白。我也读到某处,因为MYSQL不支持它是完全不可能的,我觉得很难相信。

这是我的SQL Fiddle链接: http://sqlfiddle.com/#!2/565c37/1/0

编辑:代码实际上是正确的,只是交换了+和 - 这让我失明。

最终查询:

UPDATE 
    tableX AS upd
  JOIN
    tableX AS simple
      ON  simple.Col1 = upd.Col1 -1
SET
    upd.Col2 = simple.Col3 ;

1 个答案:

答案 0 :(得分:0)

您只需使用- 1而不是+ 1

UPDATE tableX upd JOIN
       tableX simple
       ON simple.Col1 = upd.Col1 - 1
    SET upd.Col3 = simple.Col2 ;

如果您要使用顺序ID,则应使用数字来表示它们,而不是字符串。我不认为join可以使用索引,因为类型转换。