更新语句 MySQL 连续字段



有了下面的 mysql 进程,如果我保持下面的顺序(给定依赖关系(,是否可以合理地说 mysql 总是先更新然后更新第二列。 还是建议我编写 2 个单独的更新查询,一个用于第一列,一个用于第二列?

CREATE TABLE a (first INT, second INT);
INSERT INTO a VALUES (1,1);
UPDATE a SET first = 2, second = first * 2;

它是顺序的。因此,首先更新为 2,然后第二次更新为第一个 * 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 |
+-------+--------+

因此,如果要更新第二个字段(依赖于依赖字段(,请将第二个字段的顺序更改为位于依赖字段之前。

最新更新