Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 使用另一个表中的列更新一个表中的时间戳列_Mysql_Sql_Sql Update - Fatal编程技术网

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的时间

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
的时间戳列作为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)