为了账号安全,请及时绑定邮箱和手机立即绑定

用另一个MySQL值更新一个MySQL表

用另一个MySQL值更新一个MySQL表

慕姐4208626 2019-12-10 10:35:00
我正在尝试根据另一个MySQL信息更新一个MySQL表。我的original桌子看起来像:id | value------------1  | hello2  | fortune3  | my4  | old5  | friend而tobeupdated表如下所示:uniqueid | id | value---------------------1        |    | something2        |    | anything3        |    | old4        |    | friend5        |    | fortune我想更新id在tobeupdated与id来自original基于value(存储在字符串VARCHAR(32)字段)。希望更新后的表如下所示:uniqueid | id | value---------------------1        |    | something2        |    | anything3        | 4  | old4        | 5  | friend5        | 2  | fortune我有一个有效的查询,但是非常慢:UPDATE tobeupdated, originalSET tobeupdated.id = original.idWHERE tobeupdated.value = original.value这使我的CPU耗尽,最终导致超时,并且仅执行了一部分更新(有数千个要匹配的值)。我知道匹配的value速度会很慢,但这是我必须将它们匹配在一起的唯一数据。有没有更好的方法来更新这样的值?如果可以更快的速度,我可以为合并结果创建第三个表?我尝试过MySQL-如何使用另一个表中的值更新表?,但并没有真正的帮助。有任何想法吗?在此先感谢您帮助MySQL新手!
查看完整描述

3 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

这些表很大(original有100,000多个条目和tobeupdated10,000 多个条目),所以我接受了您和noodl关于索引的建议,整个查询现在不到一秒钟就完成了。我不敢相信其中的区别!?非常感谢你的帮助; 我学到了很多

查看完整回答
反对 回复 2019-12-10
  • 3 回答
  • 0 关注
  • 522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信