我有一个包含状态列的表(最初带有progress
)。我需要将此列的值更新为success
。
这个查询是我想要的吗?
Update "tablename" set status='success' where status='progress'
我要问的原因是更新和where条件都在检查同一列。
这是对的吗?
答案 0 :(得分:4)
这会有效,但会修改在该列中有进展的所有行。
我认为您可能希望根据记录的其他部分限制更新。
例如,如果是安装特定软件的进度(比如机器号7上的Ubuntu):
update tbl set status='success'
where status='progress'
and machine_id = 7
and software = 'Ubuntu'
从概念的角度来看,它首先收集要更改的记录列表(使用where
子句),然后将update ... set
应用于所有这些记录。
答案 1 :(得分:3)
是的,这是正确的,确定您要更改的行并将信息提交到specirfifed列:
Update MyTable set Allowed = 1 WHERE Allowed = 0 AND UserID = 123
干杯,
安德鲁
答案 2 :(得分:2)
该语句会将状态为“progress”的每一行的值更改为“success”。这真的是你想要的吗?
答案 3 :(得分:2)
是的,这是正确的,status ='progress'的所有行都将更新
答案 4 :(得分:2)
是的,没关系。这会将表格中“进展”的每一行更新为“成功”,不仅仅是一行。我不确定这是不是你想要的。