2009-02-27 45 views
1

我有一張狀態列表(最初與progress)。我需要將此列的值更新爲success更新列

此查詢是我想要的嗎?

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

我問的原因是更新和where條件都檢查同一列。

這是正確的嗎?

回答

2

該語句會將狀態爲「進度」的每行的值更改爲「成功」。那真的是你想要的嗎?

+0

我的問題是 - 它是工作?,因爲在這裏我已經使用狀態進行修改,並且在哪裏條件。 – praveenjayapal 2009-02-27 09:57:13

4

這將工作,但它會修改所有行在該列中有進展。

我想你可能想限制基於記錄的其他部分的更新。

例如,如果它是安裝的軟件將特定的推進(比如Ubuntu的機器數量7):

update tbl set status='success' 
where status='progress' 
and machine_id = 7 
and software = 'Ubuntu' 

從概念的角度來看,它收集的記錄列表先更改(與where子句),然後將update ... set應用於所有這些記錄。

2

是的,這是正確的,其中狀態=「進步」將被更新

2

是所有行,這很好。這將更新表中「進展」的每一行爲「成功」,但不僅僅是一個。我不確定這是否是你想要的。

3

是的,這是正確的,確定的行/秒要更改並提交信息給specirfifed列:

Update MyTable set Allowed = 1 WHERE Allowed = 0 AND UserID = 123 

乾杯,

安德魯