Mysql更新仅从第一行获取数据,是不是bug?

时间:2013-02-25 19:50:22

标签: 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;

等等。

不是。看起来它只从第一行获得值。有人知道为什么吗?

1 个答案:

答案 0 :(得分:3)

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

x - (x - 3)+ 1 = 4