Mysql 使用另一个表中的列更新一个表中的时间戳列
MySQL似乎不是我的强项。我在现有表中添加了一个Mysql 使用另一个表中的列更新一个表中的时间戳列,mysql,sql,sql-update,Mysql,Sql,Sql Update,MySQL似乎不是我的强项。我在现有表中添加了一个timestamp列,默认值应为CURRENT\u timestamp。但是,所有现有行都有一个空的时间戳(0000-00-00:00:00)。我想做的是使用另一个表的timestamp列更新这些行的timestamp列(名为ts)。两个表中都有两列,我想首先匹配它们。因此,如果(tb1.col1=tb2.col1和tb1.col2=tb2.col2)或(tb1.col1=tb2.col2和tb1.col2=tb2.col1),则使用tb2的时间
timestamp
列,默认值应为CURRENT\u timestamp
。但是,所有现有行都有一个空的时间戳(0000-00-00:00:00)。我想做的是使用另一个表的timestamp列更新这些行的timestamp列(名为ts
)。两个表中都有两列,我想首先匹配它们。因此,如果(tb1.col1=tb2.col1和tb1.col2=tb2.col2)或(tb1.col1=tb2.col2和tb1.col2=tb2.col1
),则使用tb2
的时间戳列作为tb1的时间戳列中的更新值
这有意义吗?我如何编写这样的更新语句
谢谢你的阅读。非常感谢您的帮助。非常简单,请参阅中的最后一个示例
如果我要对你的要求进行字面解释,它看起来是这样的:
UPDATE tb1,tb2 SET tb1.ts=tb2.ts
WHERE (tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) OR
(tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1)
你可能需要对那里的情况大惊小怪。我希望你有一个测试数据库,让它首先工作
UPDATE tb1,tb2 SET tb1.ts=tb2.ts
WHERE (tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) OR
(tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1)