sql如何用新的唯一值替换数千个唯一值

时间:2017-09-06 09:34:06

标签: mysql sql

我有一张桌子:

key, value
1, ...
2, ...
3, ...

我现在需要更换数千个密钥

oldkey, newkey
1, 4
3, 7

结果

key, value
4, ...
2, ...
7, ...

如果没有成千上万的更新查询,是否有实用的方法可以做到这一点? 如果是高性能的话呢?

2 个答案:

答案 0 :(得分:2)

使用INNER JOIN更新它们,如:

     UPDATE upd
        SET upd.key = mapping_table.newkey
       FROM table_to_update upd
 INNER JOIN mapping_table
         ON upd.key = mapping_table.oldkey

答案 1 :(得分:1)

您可能需要内部联接

SELECT b.newkey,a.value
FROM OLDKEYS a INNER JOIN NEWKEYS b
ON a.key = b.oldkey;

如果有需要,您也可以使用此逻辑进行更新