MySQL:使用PHP一次一批地选择行



我尝试做的是,我有一个表来保存用户信息(每个用户一行),并且我每天运行一个php脚本来填充我从用户那里得到的信息。对于一列,比如列A,如果我找到信息,我会将其填充,否则我不会触摸它,所以它保持为NULL。原因是允许它们在下一次更新中更新,此时信息可能可用。

问题是我有太多的行要更新,如果我盲目地选择列A为NULL的所有行,那么结果将不适合内存。如果我一次选择5000,那么在下一个SELECT 5000中,我可以得到上次没有更新的行,这将是一个无限循环。。。

有人知道怎么做吗?我没有ID列,所以我不能只说SELECT WHERE ID>X…有没有一个解决方案(在MySQL端或php端)而不修改表?

您需要使用LIMIT和OFFSET关键字。

SELECT [stuff] LIMIT 5000 OFFSET 5000;

LIMIT表示要返回的行数,OFFSET表示沿表读取的距离。

最新更新