我想用一个查询更新多行。我正在使用MySQL。
什么是正确的查询?
以下是我需要使用一个查询更新多个姓氏的示例。
开始:
name last_name
______ ________
James abcasd
Becky hadsfd
Richard adfdfadgg
完成:
name last_name
______ ________
James Jamerson
Becky Beckerdude
Richard O'Nerdy
答案 0 :(得分:3)
如果是有限的情况,可以使用Case Statement.
update yourTable set Last_Name = CASE When Name = 'James' then 'Jamerson'
WHEN Name = 'Becky' then 'Beckerdude'..
--then for each case
END
修改强>
如果你在另一个表中得到了Name - NewLastName的关系,那么创建一个脚本:
select
'When Name = '''+CAST(Name as Varchar(50)+''' Then '''+Cast(LastName as Varchar(50)+'''
from yourTableWithRelation
这将生成所有When Name then LastName
然后将其添加到update
Update yourTable set Last_Name = CASE
--Paste here the generated
END
<强> EDIT2 强>
另一个 BEST 到update
的方式,如果你在另一个表中得到关系:
Update T set T.Last_Name = T2.LastName from YourTableToUpdate T inner join TableWithNewLastName T2
on T1.Name = T2.Name