gpt4 book ai didi

MySQL 更新导致列值在查询中途更改

转载 作者:行者123 更新时间:2023-11-29 06:00:25 25 4
gpt4 key购买 nike

谁能解释为什么在 MySQL 中会发生这种情况?

mysql> select * from test;
+----+---+---+
| id | a | b |
+----+---+---+
| 1 | 1 | 1 |
+----+---+---+
1 row in set

mysql> update test set a = a + 1, b = a + 1;
Query OK, 1 row affected
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from test;
+----+---+---+
| id | a | b |
+----+---+---+
| 1 | 2 | 3 |
+----+---+---+
1 row in set

mysql>

架构:

CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL,
`a` int(10) unsigned NOT NULL,
`b` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

最佳答案

据我了解,sql 执行从左到右的评估。因此,如果您更新 a 中的值并将 a 用作 b 的基础。新的值(value)将得到体现

SQL UPDATE order of evaluation

关于MySQL 更新导致列值在查询中途更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45490955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com