我试图根据另一个表格的信息更新一个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
我想tobeupdated
与id
从original
基于存储在value
(字符串更新id
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 - How can I update a table with values from another table?,但它并没有真正的帮助。有任何想法吗?
预先感谢帮助MySQL新手!
您的'价值'栏是否有索引? – noodl 2011-04-20 09:23:14
嗨noodl;不,“价值”目前没有索引。 – Superangel 2011-04-20 09:37:29