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