微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多行更新

如何解决多行更新

| 我在使用单个MysqL语句更新MysqL表的几行时遇到问题。 我有我想在例如字符串中更新的rowid。
$ids=\"id1,id2,id3,id4,....\"
我在另一个字符串中有我的值,例如。
$values=\"str1,str2,str3,str4,....\";
我有30,000多行要更新) 这个想法是id1的行应该用str1更新,依此类推。 我怎样才能解决这个问题? 谢谢     

解决方法

        这将是一个非常丑陋的查询,但是...
update table
set    str = case id
             when id1 then str1
             when id2 then str2
             ...
             end
where  id in (id1,id2,...)
    ,        创建一个包含两列id和str的临时表,并做一个很长的
INSERT INTO temptable VALUES (id1,str1),(id2,str2)...(idn,strn);
您无需进入数据库即可在for循环中构建字符串。然后,以明显的方式将一个
UPDATE
连接到临时表。 (索引临时表可能有帮助,也可能没有帮助。) 您不希望数据库往返30K。 (另一方面,如果遇到最大的字符串长度问题,则可能必须拆分
INSERT
。)     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。