mysql - 更新语句 MySQL 连续字段
问题描述
有下面的mysql进程,如果我保持下面的顺序(给定依赖关系),总是mysql会先更新然后第二列是合理的。还是建议我为第一列编写两个单独的更新查询,为第二列编写一个?
CREATE TABLE a (first INT, second INT);
INSERT INTO a VALUES (1,1);
UPDATE a SET first = 2, second = first * 2;
解决方案
它是顺序的。因此,first 更新为 2,然后 second 更新为 first * 2 = 4。
如果您的数据是 1、1,那么在您更新之后,它将是:
CREATE TABLE a (first INT, second INT);
INSERT INTO a VALUES (1,1);
UPDATE a SET first = 2, second = first * 2;
select * from a;
+-------+--------+
| first | second |
+-------+--------+
| 2 | 4 |
+-------+--------+
如果你这样做:
truncate table a;
INSERT INTO a VALUES (1,1);
UPDATE a SET second = first * 2, first = 2;
你会得到
select * from a;
+-------+--------+
| first | second |
+-------+--------+
| 2 | 2 |
+-------+--------+
因此,如果要更新第二个字段(依赖于依赖字段),请将第二个字段的顺序更改为在依赖字段之前。