使用另一个表中的列更新一个表中的timestamp列

时间:2013-03-07 03:43:02

标签: mysql sql sql-update

似乎MySQL不是我的强项。我在现有表中添加了timestamp列,默认值应为CURRENT_TIMESTAMP。但是,所有现有行都有一个空白时间戳(0000-00-00 00:00:00)。我想要做的是使用另一个表的timestamp列更新这些行的timestamp列(名为ts)。我在两个表中都有两列我想先匹配的列。因此,如果(tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) OR (tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1),则使用tb2的时间戳列作为tb1时间戳列中的更新值。

这有意义吗?我该如何编写这样的更新语句?

感谢阅读。感谢所有帮助。

2 个答案:

答案 0 :(得分:1)

非常简单地看到the docs

中的最后一个样本
Update tbl1, tbl2
set 
  tb1.ts = tbl2.ts
WHERE (tb1.col1 = tb2.col1 AND tb1.col2 = tb2.col2) 
   OR (tb1.col1 = tb2.col2 AND tb1.col2 = tb2.col1)

答案 1 :(得分:0)

如果我要对你所要求的内容进行字面解释,它看起来像这样:

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)

你可能需要对那里的条件大惊小怪。我希望你有一个测试数据库,让它先工作。