使用子查询在mysql中进行多次更新

时间:2011-08-30 15:37:13

标签: mysql

请问,我想要一个查询,帮助我在从dlr表中选择前200行后,将bill列的前200行更新为3。当我的select语句回来再选择200行时,我也希望不再重复。

它只会选择不是3的帐单列行。

以下是我写的查询,它给出了我下面提到的错误。

'LIMIT & IN/ALL/ANY/SOME subquery:
UPDATE dlr SET bill = 3 
WHERE dlrid IN (SELECT dlrid FROM dlr WHERE bill = 0 LIMIT 0,200);

我收到错误= This version of MySQL doesn't yet support

有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

您不需要子查询。

UPDATE dlr SET bill = 3 WHERE bill = 0 LIMIT 200;

答案 1 :(得分:0)

将限制子句从子查询中移出到更新查询中:

UPDATE dlr SET bill = 3 WHERE dlrid IN (SELECT dlrid FROM dlr WHERE bill = 0) LIMIT 200;

没有必要使用范围,因为下一个200保证与前200个不同,因为账单从0变为3。

为了实现这一点,dlrid在dlr中必须是唯一的,我猜它的名字就是。