Select Stackoverflow.* From Stackoverflow Where GeneralId = 1000;
上面的sql返回3条记录,如:
Id GeneralId Name StateId
1 1000 stack null
2 1000 stackover null
3 1000 stackoverflow null
我想更新返回记录的StateId。
另一方面
有时候记录的数量可能是1,有时候就像上面的例子一样。
Select Stackoverflow.* From Stackoverflow Where GeneralId = 1001;
上面的sql语句只返回一条记录。
Id GeneralId Name StateId
8 1001 stck null
那么如何更新这些返回的记录呢。 我认为应该有一个从0到记录计数和循环的循环
我只尝试编写Pseudocode。
Update Stackoverflow
Set StateId = 1
where = "loop as I mentioned should be come?"
不是吗?任何想法。
谢谢。
答案 0 :(得分:2)
试试
Update Stackoverflow
Set StateId = 1
where GeneralId = 1000;
它将更新与WHERE子句相对应的所有记录,如果它们是1或1000。
答案 1 :(得分:2)
第一个是:
UPDATE Stackoverflow
Set StateId = 1
where GeneralId = 1000;
对于第二个:
UPDATE Stackoverflow
Set StateId = 1
where GeneralId = 1001;
对于他们两人:
UPDATE Stackoverflow
Set StateId = 1
where GeneralId IN (1000,1001);
答案 2 :(得分:1)
如果要将WHERE子句选择的所有记录设置为您刚编写的相同值
Update Stackoverflow Set StateId = 1 WHERE GeneralID = 1000
将使用新值更新所有三个记录(或GeneralID = 1001时的唯一记录) UPDATE语句适用于WHERE子句检索的记录集。
答案 3 :(得分:1)
Update Stackoverflow
Set StateId = 1
where Id in (
//Your query if you want to customize
Select Id From Stackoverflow Where GeneralId = 1001;
)
答案 4 :(得分:1)
考虑使用SQL Server的update ... from
语法,例如:
update tbl1
set stateid = 1
from ... your query here ...
例如:
update tbl1
set stateid = 1
from Stackoverflow as tbl1
where tbl1.GeneralId = 1000