更新加入限制50000?

时间:2014-03-13 17:02:51

标签: mysql

如何仅在使用update时更新50,000行?

我试过了:

UPDATE type4
 LEFT JOIN sup ON sup.number = type4.number
 SET type4.exported = 2
 WHERE batch in ('B4', 'B5') AND outcome = 'new' AND sup.number is null
LIMIT 50000

使用限制时无效。

如何使用带有限制的子查询来完成?

1 个答案:

答案 0 :(得分:1)

也许这样的事情可行。

AND WHERE id BETWEEN 1 AND 50000

假设ID为auto increment并且未被破坏。

或做一个

UPDATE, SELECT WHERE IN LIMIT

但我觉得如果你在5.5

它就不再有用了

检查此fiddle

警告某种伪代码

UPDATE type4
LEFT JOIN sup ON sup.number = type4.number
SET  type4.exported = 2
WHERE batch IN ('B4', 'B5') 
AND outcome = 'new' 
AND sup.number is null
AND type4.id IN (
     SELECT id FROM (
         SELECT id FROM type4
         LIMIT 50000
     ) temp
 );