将日期从column1移动到第2列,column1设置为null

时间:2016-02-17 15:50:58

标签: mysql

知道如何在MySQL中做到这一点吗?

当前数据:

ID | name | lvl1 | lvl2 | lvl3
1   justin  test  

期望的结果:

ID | name | lvl1 | lvl2 | lvl3
1   justin         test  

2 个答案:

答案 0 :(得分:1)

UPDATE tbl SET lvl2 = lvl1, lvl1 = NULL WHERE id = 1;

答案 1 :(得分:1)

我认为update语句应该更新表的所有行。

UPDATE tbl SET lvl2 = lvl1, lvl1 = NULL;-- works well on Oracle

由于MySql更新仅适用于where子句,因此我们必须添加如下所示。

UPDATE tbl SET lvl2 = lvl1, lvl1 = NULL WHERE id IS NOT NULL;

这里我们将lvl1的值分配给lvl2和lvl1为null,其中id为null,即那些更改是在表tbl的每一行上进行的。

如果只想在lvl1不为null时执行更新,请尝试:

UPDATE tbl SET lvl2 = lvl1, lvl1 = NULL WHERE lvl1  IS NOT NULL;