我必须创建一个包含大量查询(大约 150,000 个)的 mysql 查询
目前的查询是:
UPDATE table SET activated=NULL
WHERE (
id=XXXX
OR id=YYYY
OR id=ZZZZ
OR id=...
...
)
AND activated IS NOT NULL
你知道最好的方法吗?
如果您谈论的是数千个项目,那么一个IN
子句可能不起作用。在这种情况下,您可能希望将项目插入到临时表中,然后加入它以进行更新,如下所示:
UPDATE table tb
JOIN temptable ids ON ids.id = tb.id
SET tb.activated = NULL
UPDATE table
SET activated = NULL
WHERE id in ('XXXX', 'YYYY', 'zzzz')
AND activated IS NOT NULL