0

1 つのクエリで複数の行を更新したい。私はMySQLを使用しています。

正しいクエリは何ですか?

これは、1 つのクエリで複数の姓を更新する必要がある例です。

始める:

name      last_name
______    ________
James     abcasd
Becky     hadsfd
Richard   adfdfadgg

終了:

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

1 に答える 1

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

編集2

別のテーブルで関係を取得した場合の別の最良の方法:update

Update T set T.Last_Name = T2.LastName from YourTableToUpdate T inner join TableWithNewLastName T2 
on T1.Name = T2.Name
于 2012-07-29T22:14:45.767 に答える