我现在遇到了麻烦。我根本不熟悉SQL,但对于我的私人项目,我正在使用与游戏相关的数据库,我必须从列{{1}编辑表[Data]
的{{1}}列。来自表[_RefScrapOfPackageItem]
。
但问题是我有多个项目需要更新,并不是每个项目都有相同的[Dur_U]
值。例如,我在表[_RefObjItem]
中搜索类似[Dur_U]
的商品代码,并使用ITEM_CH_TBLADE_01_C_RARE
列搜索表[_RefObjCommon]
中的商品的[Link]
(其中表示链接是项目的ID)。之后,我从_RefObjItem表中获取[ID]
,现在我想将其放入[_RefObjItem]
列中[Dur_U]
列,其中[_RefScrapOfPackageItem]
列是ItemCode {{1}但是有很多不同的项目代码,每个项目代码都有一个自己的[Data]
。
这是我正在使用的SQL代码,我可以同时编辑1个项目代码,更新每个项目需要很长时间。我希望有人可以帮助我使SQL查询适用于[RefItemCodeName]
语句。
我希望使用ItemCode ITEM_CH_TBLADE_01_C_RARE
“搜索”每个项目(当然会产生超过1个结果)
[Data]
答案 0 :(得分:0)
declare @ItemCode varchar(256) = 'ITEM_CH_%_01_A';
update _RefScrapOfPackageItem
set Data = (
select i.Dur_U
from _RefObjCommon as c inner join _RefObjItem as i
on i.ID = c.Link
where l.CodeName128 = _RefScrapOfPackageItem.RefItemCodeName
)
where RefItemCodeName like @ItemCode;
很多人会让你使用SQL Server的update...from
,这是我检查过的非标准SQL。此版本将从子查询的非标量结果中获益或抛出错误。顺便说一下,在更新的表上使用别名也是非标准的。