MySQL 8.3 Release Notes
如果您在 UPDATE 语句中访问要更新的表的列,在表达式中,UPDATE 使用该列的当前值。以下语句中的第二个赋值将 col2 设置为当前(更新后的) col1 值,而不是原始的 col1 值。结果是 col1 和 col2 具有相同的值。这与标准 SQL 的行为不同。
UPDATE t1 SET col1 = col1 + 1, col2 = col1;
如果您在 UPDATE 语句中访问要更新的表的列,在表达式中,UPDATE 使用该列的当前值。以下语句中的第二个赋值将 col2 设置为当前(更新后的) col1 值,而不是原始的 col1 值。结果是 col1 和 col2 具有相同的值。这与标准 SQL 的行为不同。
UPDATE t1 SET col1 = col1 + 1, col2 = col1;