【发布时间】:2012-03-19 20:06:55
【问题描述】:
我尝试做的是我有一个表格来保存用户信息(每个用户一行),我每天运行一个 php 脚本来填写我从用户那里获得的信息。对于一列说A列,如果我找到信息我会填写它,否则我不碰它所以它仍然是NULL。原因是当信息可能可用时,允许它们在下一次更新中更新。
问题是我有太多行要更新,如果我盲目地将 A 列的所有行选择为 NULL,那么结果将不适合内存。如果我一次 SELECT 5000,那么在下一个 SELECT 5000 中我可以获得上次没有更新的相同行,这将是一个无限循环......
有没有人知道如何做到这一点?我没有 ID 列,所以我不能只说 SELECT WHERE ID > X... 有没有不修改表的解决方案(在 MySQL 端或 php 端)?
【问题讨论】:
-
所以不是规范化的表。你想在什么条件下更新?
-
请运行
SHOW CREATE TABLE mytable\G并将其显示在问题正文中。 -
有没有可以排序和限制的列?
-
@zod Ya 所以对于所有列 A 为 NULL 的行,我想进行搜索,看看我是否有相关信息。如果我这样做,我会填写该行的A列,否则我不会触摸它。
-
@RolandoMySQLDBA 谢谢你的回复,但很抱歉我宁愿不显示我的表的结构,因为它是我们的生产表。我知道你可能因此无法帮助我,但还是谢谢你:)