2015-05-20 49 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程序點那樣連接字段。 –

相關問題