2014-11-25 56 views
0

我想简单的改造应用到一组常见的行,如果一个行符合特定的条件。应用转换到组一行行的满足标准的MySQL

例如,在下面的数据,我想1添加到每个值用于具有为0的值的任何ID ...为他的所有值,使得该数据

Value ID  
2  1 
3  1 
0  2 
1  2 

会变成这个...

Value ID 
2  1 
3  1 
1  2 
2  2 

任何帮助非常感谢!

回答

0

Arrg。这是MySQL。你可以用join做到这一点:

update t join 
     (select distinct t2.id 
     from t t2 
     where t2.value = 0 
     ) t2 
     on t2.id = t.id 
    set t.value = t.value + 1; 
+0

我大概应该说,表是一个临时表 - 更新不与临时表发挥很好 - 什么解决办法? – gh0strider18 2014-11-25 14:00:02

+0

@ gh0strider18。 。 。哎呀。我非常了解这一点。那么解决方案就是使用'join'。 – 2014-11-25 14:01:54

+0

嗯,我仍然得到1137错误,其中mySql无法重新打开临时表。再次,我认为这是一个更新错误... – gh0strider18 2014-11-25 14:09:37