减去后,用值更新同一表格列

时间:2014-11-21 07:40:53

标签: mysql mysqli

我想从列中的每个值获取main_table,subtruct 1(one)的duration列中的值,然后用差异更新相同的列(子结构后的结果),例如

main_table (before any operation)
--------------------------------
id     duration
1        x
2        y
3        z

main_table (after update operation)
--------------------------------
id     duration
1        x - 1
2        y - 1
3        z - 1

这是我到目前为止尝试过的失败

UPDATE main_table mt, (SELECT duration - 1 AS remaining
                FROM main_table mt1
               ) mt1
SET mt.duration = mt1.remaining 
WHERE mt.id = mt1.id

建议大家做到这一点!

2 个答案:

答案 0 :(得分:1)

您不需要对此进行子查询,可以使用单个更新语句

完成
update main_table
set 
duration = duration - 1

答案 1 :(得分:1)

您可以直接使用此列,这将根据您的需要更新列值。 检查一下,可以帮到你。

UPDATE main_table mt 
SET mt.duration = mt.duration -1