【发布时间】:2011-06-12 12:02:26
【问题描述】:
我在使用单个 mysql 语句更新 mysql 表的几行时遇到问题。
我有我想在字符串中更新的 rowid,例如。
$ids="id1, id2, id3, id4,...."
我在另一个字符串中有我的值,例如。
$values="str1, str2, str3, str4,....";
(我有超过 30,000 行要更新)
想法是id1的行应该用str1更新等等。
我该如何解决这个问题?
谢谢
【问题讨论】:
-
将这 2 个字符串分解为数组并使用 foreach 循环,更新数据库
-
我有超过 30,000 行要更新......这意味着运行超过 30,000 个查询。有没有更好的解决方案?
-
您绝对应该进行批量更新。但我不知道怎么做。可能您可以使用 LOAD DATA 和 UPDATE ON DUPLICATE。但这需要研究和测试。
-
30,000 行如果您将它们分组到事务中应该不会那么糟糕(即不要为每条语句执行一次提交,每 100 次插入执行一次提交等)。假设你在这里使用 InnoDB。
标签: mysql sql sql-update