更新内部加入限制?

时间:2014-06-14 07:21:58

标签: mysql

我希望使用INNER JOIN更新最多8000行。

我收到错误:

  

UPDATE和LIMIT

的使用不正确

如果我不包含INNER JOIN

,它确实有用
UPDATE `loop`
INNER JOIN data ON data.number = loop.number
SET robot = 1
WHERE `done` != 1 AND `robot` = 0
limit 8000

我如何让它工作?示例SQL会很棒。

1 个答案:

答案 0 :(得分:0)

我假设你的桌子有一把主键我在这里称号码。然后将临时表中的前8000个数字复制并将更新加入该表:

create temporary table if not exists PKs (number integer);
insert into PKs select number from loop where done != 1 and robot = 0 limit 8000;
update data inner join PKs on data.number = PKs.number set data.robot = 1;
drop table PKs;

也许我对完成和机器人字段的使用不正确,但是根据你的陈述,它不清楚它们属于哪个表。