1

我必须创建一个包含大量查询(大约 150,000 个)的 mysql 查询

目前的查询是:

UPDATE table SET activated=NULL
WHERE (
        id=XXXX
    OR  id=YYYY 
    OR  id=ZZZZ 
    OR  id=...
    ...
)
AND activated IS NOT NULL

你知道最好的方法吗?

4

2 回答 2

3

如果您谈论的是数千个项目,那么一个IN子句可能不起作用。在这种情况下,您可能希望将项目插入到临时表中,然后加入它以进行更新,如下所示:

UPDATE table tb
JOIN temptable ids ON ids.id = tb.id
SET tb.activated = NULL
于 2012-09-27T15:38:02.723 回答
1
UPDATE table 
SET activated = NULL
WHERE id in ('XXXX', 'YYYY', 'zzzz')
AND activated IS NOT NULL
于 2012-09-27T15:17:49.350 回答