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时间戳列中的更新值。
这有意义吗?我该如何编写这样的更新语句?
感谢阅读。感谢所有帮助。
答案 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)
你可能需要对那里的条件大惊小怪。我希望你有一个测试数据库,让它先工作。