Mysql更新只从第一行获取数据,是bug吗?

标签 mysql sql-update

我有这样的查询:

UPDATE `portal_dyslektyczny`.`questions` AS `Question` SET `Question`.`order` = `Question`.`order` - (`Question`.`order` - 3) + 1 WHERE `Question`.`order` > 3 AND `Question`.`question_group_id` = 1;

即使所有行都按升序排列

+----+-------+-------------------+
| id | order | question_group_id |
+----+-------+-------------------+
| 74 |     6 |                 1 |
| 75 |     7 |                 1 |
| 76 |     8 |                 1 |
+----+-------+-------------------+

但是当我运行查询表时这样结束

+----+-------+-------------------+
| id | order | question_group_id |
+----+-------+-------------------+
| 74 |     4 |                 1 |
| 75 |     4 |                 1 |
| 76 |     4 |                 1 |
+----+-------+-------------------+

我得到的每一行值的变化应该是这样的

ID: 74

`Question`.`order` = 6 - ( 6 - 3) + 1;

ID: 75

`Question`.`order` = 7 - ( 7 - 3) + 1;

等等。

但事实并非如此。看起来它只从第一行获取值。有人知道为什么吗?

最佳答案

检查您的公式 - 在所有情况下它都解析为 4。

x - (x - 3) + 1 = 4

关于Mysql更新只从第一行获取数据,是bug吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15075230/

相关文章:

php - MySQL 更新枚举

php - MySQL数据库-查询仅更新某些字段

mysql - 在 MySQL 中将新行插入表(触发问题)时有选择地更新旧行

sql - MySQL:用空值求平均值

c# - 如何使用 Entity Framework 从mysql获取最后插入的id

mysql - WooCommerce 优惠券如何存储在数据库中?

mysql - 如何在连接和排序依据中更新 sql

mysql - 如何将一行数据复制到另一行

php - 如何处理用于分析的大型数据集以及不同数量的列?

未插入 PHP PDO 查询 - 错误 HY093