2017-09-06 33 views
0

我有一个表:SQL如何使用新的唯一值替换数千唯一值的

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

我现在需要更换几千键

oldkey, newkey 
1, 4 
3, 7 

结果

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

有没有一种实用的方法来做到这一点,而没有成千上万的更新查询? 会高性能吗?

+0

任何旧值都会显示为新值吗? – jarlh

+0

不,旧的和新的值都将是唯一的(它们实际上是哈希值) – Chris

回答

1

你可能需要内部联接

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

如果有需要,你可以使用这个逻辑的更新以及

2

与内更新他们加入,如:

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