0
我有這樣的查詢:Mysql更新僅從第一行獲取數據,是否是bug?
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;
等。
不是。它看起來像只從第一行獲取值。有人知道爲什麼嗎?
呼應您的SQL查詢到瀏覽器,當你運行它,結果貼在這裏,所以我們可以來看看。 – Mike 2013-02-25 19:51:57
回聲查詢是在頂部的問題。在查詢運行之前和之後給出表格。 – 23kulpamens 2013-02-25 19:54:21
所以...... 6-(6-3)+ 1 AND 7-(7-3)+ 1 AND 8-(8-3)+ 1 ALL等於4.這沒有錯誤,這是算術。如果你繼續100 - (100-3)+1仍然等於4. – 2013-02-25 19:55:30