经过一段时间的搜索,我找到的答案都没有帮助。 我有一个带有值的表,现在我想像这样更新表:
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 ;
答案 0 :(得分:0)
您只需使用- 1
而不是+ 1
:
UPDATE tableX upd JOIN
tableX simple
ON simple.Col1 = upd.Col1 - 1
SET upd.Col3 = simple.Col2 ;
如果您要使用顺序ID,则应使用数字来表示它们,而不是字符串。我不认为join
可以使用索引,因为类型转换。