如何在同一个查询中执行多个更新。查询多个更新
可以说我有此查询
UPDATE table1
SET
Order = 1
WHERE
ID = 1234
但我想改变一些更多的订单,其中ID是2345和2837和8399
我会怎么做同样的MySQL查询中。请注意,这些订单可能与1不同。因为订单字段是唯一的。
如何在同一个查询中执行多个更新。查询多个更新
可以说我有此查询
UPDATE table1
SET
Order = 1
WHERE
ID = 1234
但我想改变一些更多的订单,其中ID是2345和2837和8399
我会怎么做同样的MySQL查询中。请注意,这些订单可能与1不同。因为订单字段是唯一的。
UPDATE table1
SET Order = 1
WHERE id IN (1234, 2345, 2837, 8399)
如果你需要的Order
不同的值,每个ID,那么你可能想提出一个循环中的任何程序谈话的数据库。
编辑补充
我想在程序循环的,但我看你要交互式地执行SQL。
如果你想绑定不可预测的数字序列是这样的:
UPDATE table1 Order = 1 WHERE id = 1234
UPDATE table1 Order = 2 WHERE id = 2345
UPDATE table1 Order = 3 WHERE id = 2837
UPDATE table1 Order = 5 WHERE id = 8399
UPDATE table1 Order = 8 WHERE id = 8675
...然后我不知道你怎么想,要更短。您可以写被调用这样一个存储过程:
do_table1_update "1,2,3,5,8,13", "1234,2345,2837,8399,8675,309"
这是你有什么想法?
UPDATE table1
SET
Order = 1
WHERE
ID in (2345,2837,8399)
可以更新多行,但是你不能命令字段设置为不同的值,所以所有订单字段(匹配ID)如果您想将具有值1
UPDATE table1 SET Order = 1 WHERE ID IN(1234, 2345, 2837, 8399)
编辑了这个问题 – Autolycus 2010-09-13 21:48:35
我在phpmyadmin..how上运行这个会在sql中放一个循环吗? – Autolycus 2010-09-13 21:49:49