SQL:更新多行

时间:2012-07-29 22:12:16

标签: mysql select syntax

我想用一个查询更新多行。我正在使用MySQL。

什么是正确的查询?

以下是我需要使用一个查询更新多个姓氏的示例。

开始:

name      last_name
______    ________
James     abcasd
Becky     hadsfd
Richard   adfdfadgg

完成:

name      last_name
______    ________
James     Jamerson
Becky     Beckerdude
Richard   O'Nerdy

1 个答案:

答案 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