2009-02-27 10 views
1

私はステータス列(最初はprogress)を持つテーブルを持っています。この列の値をsuccessに更新する必要があります。列の更新

このクエリは何ですか?

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

私が求めているのは、更新と場所条件が同じ列をチェックしているからです。

これは間違いありませんか?

答えて

2

このステートメントは、ステータスが「進捗状況」だった各行の値を「成功」に変更します。それは本当にあなたが望むものですか?

+0

私の質問です - それはですここで私は変更のためにステータスを使用していたので、どこにいましたか? – praveenjayapal

+0

はいそれは動作します – tehvan

+0

はい、その作業、それは混乱 - 今私は明らかです。ありがとうございました。 – praveenjayapal

4

これは動作しますが、すべてその列に進捗している行が変更されます。

おそらく、レコードの他の部分に基づいて更新を制限したいと思うでしょう。例えば

それはソフトウェアの特定の部分(機体番号7上のUbuntuを言う)のインストールの進行した場合:図の概念的な観点から

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 

乾杯、

アンドリュー