首页 > 解决方案 > 更新语句 MySQL 连续字段

问题描述

有下面的mysql进程,如果我保持下面的顺序(给定依赖关系),总是mysql会先更新然后第二列是合理的。还是建议我为第一列编写两个单独的更新查询,为第二列编写一个?

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

标签: mysql

解决方案


它是顺序的。因此,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 |
+-------+--------+

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


推荐阅读