我希望使用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会很棒。
答案 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;
也许我对完成和机器人字段的使用不正确,但是根据你的陈述,它不清楚它们属于哪个表。