更新列

时间:2009-02-27 09:51:46

标签: sql

我有一个包含状态列的表(最初带有progress)。我需要将此列的值更新为success

这个查询是我想要的吗?

Update "tablename" set status='success' where status='progress'

我要问的原因是更新和where条件都在检查同一列。

这是对的吗?

5 个答案:

答案 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)

是的,没关系。这会将表格中“进展”的每一行更新为“成功”,不仅仅是一行。我不确定这是不是你想要的。