知道如何在MySQL中做到这一点吗?
当前数据:
ID | name | lvl1 | lvl2 | lvl3
1 justin test
期望的结果:
ID | name | lvl1 | lvl2 | lvl3
1 justin test
答案 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;