0

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

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

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

4

2 回答 2

1

它非常简单,请参阅文档中的最后一个示例

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)
于 2013-03-07T03:50:23.043 回答
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)

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

于 2013-03-07T03:51:07.657 回答