2015-05-20 52 views
0

像下面一样,我希望我可以连接id:1,2value和id:1,3value
如果我修改连接字段中的一个,并且其他值与新值保持一致
我该怎么做?Mysql设置两个字段保持相同的值?

ID值
1 __ 10
2 __ 10
3 __ 50
4 __ 50


后我修改ID == 1,值= 15

ID值
1 __ 15
2 __ 15
3 __ 50
4 __ 50


然后后我修改ID == 4,值= 100

ID值
1 __ 15
2 __ 15
3 __ 100
4 __ 100

+0

为什么你想要/需要这样做?原始要求是什么? – thomasb

+0

在一个卖场项目中,许多产品都有相同的设备。目前的结构是每个产品都可以设置每个设备的数量,但是我希望我能连接它并且不用修改项目的php文件 –

+0

我希望有一种方式就像C点一样,可以让我只修改一个数值但是另一个值也会改变, –

回答

1

您的问题的直接答案是在更新中使用where子句:

update table t cross join 
     (select t.* from table t where id = XXX) tt 
     on t.value = tt.value 
    set t.value = 15; 

通过更改子查询中的XXX,可以对具有匹配值的行进行更新。

对您的问题更复杂的答案是使用触发器来维持这种关系。

您的问题的正确答案是修复数据结构。这听起来像你在同一个表中存储不同级别的信息。相反,你需要桌子。事情是这样的:

您的表现在变成:

id  table1Id 
1   1 
2   1 
3   2 
4   2 

表1有:

id  Value 
1  10 
2  50 

然后,你做你的更新table1不是你的表。这将更加正常化。

+0

对不起,我没有告诉足够的信息。我需要修改一个项目代码,所以我希望不要修改php文件。所以我希望有一种方式只能像C程序点那样连接字段。 –

相关问题