说我有下表:
App owner owner_id
______________________
1 John NULL
2 Jack 000123
3 John NULL
4 April 000124
5 John NULL
6 April 000124
7 John 000123
8 Ash NULL
9 Ash NULL
10 Ash NULL
如果我需要更新John和Ash的owner_id
,是否可以通过仅输入一次信息来更新表中每次出现的每个所有者的owner_id
?
我必须为大约1000个所有者执行此操作,但是我看到大约10000个空白owner_id
的重复数量。
我没有适当的权利来重组或分割表格。
答案 0 :(得分:4)
如果我没有误解你的问题,那就是:
update owners_table set owner_id = '000001' where owner = 'john'
update owners_table set owner_id = '000002' where owner = 'ash'
这会在所有者为owner_id
的每一行中将000001
设置为John
,并在所有者为000002
的每一行中将Ash
设置为owner newid
--------------
John 000001
Ash 000002
这只是更多的副本&当你拥有很多所有者时粘贴,因为你必须为每个所有者创建一个查询。
另一种方法是创建一个只包含所有者及其新ID的临时表:
owner_ids
您可以在表格中输入数百或数千名所有者及其新UPDATE owners_table
INNER JOIN ownertmp ON owners_table .owner = ownertmp.owner
SET owners_table.owner_id = [ownertmp].[newid];
。
然后,您可以使用以下查询一次在主表中更新它们:
{{1}}
之后,您可以再次删除临时表 - 只需运行查询。