Mysql SQL:更新多行
我想用一个查询更新多行。我正在使用MySQL 正确的查询是什么 下面是一个示例,我需要用一个查询更新多个姓氏 开始:Mysql SQL:更新多行,mysql,select,syntax,Mysql,Select,Syntax,我想用一个查询更新多行。我正在使用MySQL 正确的查询是什么 下面是一个示例,我需要用一个查询更新多个姓氏 开始: name last_name ______ ________ James abcasd Becky hadsfd Richard adfdfadgg 完成: name last_name ______ ________ James Jamerson Becky Beckerdude Richard O'Ne
name last_name
______ ________
James abcasd
Becky hadsfd
Richard adfdfadgg
完成:
name last_name
______ ________
James Jamerson
Becky Beckerdude
Richard O'Nerdy
如果是有限的案例,可以使用
案例陈述。
update yourTable set Last_Name = CASE When Name = 'James' then 'Jamerson'
WHEN Name = 'Becky' then 'Beckerdude'..
--then for each case
END
编辑
如果在另一个表中获得了关系名-NewLastName,则创建一个脚本:
select
'When Name = '''+CAST(Name as Varchar(50)+''' Then '''+Cast(LastName as Varchar(50)+'''
from yourTableWithRelation
这将在Name然后LastName时生成所有
然后将其添加到更新中
Update yourTable set Last_Name = CASE
--Paste here the generated
END
edit2
另一种更新的最佳方法是,如果您在另一个表中获得了关系:
Update T set T.Last_Name = T2.LastName from YourTableToUpdate T inner join TableWithNewLastName T2
on T1.Name = T2.Name
如果是有限的案例,可以使用案例陈述。
update yourTable set Last_Name = CASE When Name = 'James' then 'Jamerson'
WHEN Name = 'Becky' then 'Beckerdude'..
--then for each case
END
编辑
如果在另一个表中获得了关系名-NewLastName,则创建一个脚本:
select
'When Name = '''+CAST(Name as Varchar(50)+''' Then '''+Cast(LastName as Varchar(50)+'''
from yourTableWithRelation
这将在Name然后LastName时生成所有
然后将其添加到更新中
Update yourTable set Last_Name = CASE
--Paste here the generated
END
edit2
另一种更新的最佳方法是,如果您在另一个表中获得了关系:
Update T set T.Last_Name = T2.LastName from YourTableToUpdate T inner join TableWithNewLastName T2
on T1.Name = T2.Name
不幸的是,将有大约2000行,我可以制作一个脚本来生成SQL,但首先要寻找替代方案:)好吧,但mySQL不是魔术。您必须为每个名称指定新名称。您是否在另一个表中获得了关系名NewLastName?你可以创建一个litle select来创建Updatedit2,这对我来说是最好、最优雅的,但是我对SQL脚本有一种奇怪的偏见。无论如何,谢谢你的回答。知道这是可能的是很有用的!如果你在另一个表中得到了关系,edit2是你能做的最好的。不幸的是,将有大约2000行,我可以制作一个脚本来生成SQL,但首先要寻找替代方法:)好吧,但是mySQL不是魔术。您必须为每个名称指定新名称。您是否在另一个表中获得了关系名NewLastName?你可以创建一个litle select来创建Updatedit2,这对我来说是最好、最优雅的,但是我对SQL脚本有一种奇怪的偏见。无论如何,谢谢你的回答。知道这是可能的是很有用的!如果您在另一个表中得到了关系,edit2是您所能做的最好的。您将从哪里获得新值?另一张表?你要从哪里得到新的值?另一张桌子?