Mysql设置两个字段保持相同的值?

时间:2015-05-20 11:10:04

标签: mysql

如下所示,我希望我可以连接id:1,2value和id:1,3value
如果我修改了一个连通字段,另一个值保持相同的新值
我该怎么办?

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

我修改id == 1,value = 15

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

然后我修改id == 4,value = 100

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

1 个答案:

答案 0 :(得分: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更新到您的桌面。这将更准确地标准化。