【发布时间】:2014-09-23 14:20:43
【问题描述】:
我有一张桌子
id | title | F_ID | order
----------------------------
1 | test 1| 1 | 44
2 | test 3| 1 | 3
3 | test 4| 1 | 1
4 | test 5| 2 | 1
我想将所有 F_ID 为 1 但保留订单的行的订单列更新为 +10
结果需要是
id | title | F_ID | order
----------------------------
1 | test 1| 1 | 30
2 | test 3| 1 | 20
3 | test 4| 1 | 10
4 | test 5| 2 | 1
我可以将我想要更新的所有行插入到临时表中 然后循环行并通过 [id] 更新真实表中的每一行。
也许有更好的选择?
【问题讨论】:
-
这种事情可能会起作用stackoverflow.com/questions/8401552/sql-increment-a-number 诀窍似乎是 SET x = X + 10
-
不,我需要给一个全新的数字而不是增加它
-
你的例子没有意义。如果您在订单中添加 +10,则 F_ID =1。在您的示例中,第一列下降了 14,第二列上升了 17,第三列上升了 9。
-
我想“漂亮”我的订单并为新商品腾出“空间”。数字的变化是x所以“新顺序”从x开始并增加y,但顺序是相等的。
标签: sql-server sql-update