基于另外两个时间戳字段更新日期字段

ifsvaxew  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(398)

海福克,我有下面的样品表结构,

mysql> SELECT * FROM tbl_test_timestamp;
+----+---------------------+---------------------+---------------------+---------------------+
| id | t1                  | t2                  | date_created        | date_updated        |
+----+---------------------+---------------------+---------------------+---------------------+
| 16 | 2019-01-22 12:47:05 | 2019-03-15 14:50:13 | 2019-01-22 12:47:05 | 2020-05-14 16:11:22 |
| 20 | 2019-01-24 09:35:19 | 2019-03-14 07:12:31 | 2019-01-24 09:35:19 | 2020-05-14 16:11:22 |
| 22 | 2019-01-24 16:46:20 | 2019-01-24 16:46:20 | 2019-01-24 16:45:35 | 2020-05-14 16:11:22 |
| 23 | 2019-01-25 14:03:33 | 2019-04-08 07:48:53 | 2019-01-25 13:55:42 | 2020-05-14 16:11:22 |
+----+---------------------+---------------------+---------------------+---------------------+

我需要将date\u updated字段设置为t1或t2,以较大者为准。我需要在700多万条记录中运行这个查询。

pcww981p

pcww981p1#

你可以用 greatest() :

update tbl_test_timestamp set date_updated = greatest(t1, t2)

当心那个 greatest() 退货 null 如果它的任何论点是 null . 根据您的数据和用例,这可能是,也可能不是需要担心的事情。

6ljaweal

6ljaweal2#

这需要很长时间,但你可以做到:

update t
    set date_updated = greatest(t1, t2);

更新所有行可能需要很长时间。你可以考虑一个视图。

相关问题