2016-04-07 13 views
-2

したがって、1つのテーブルで1つの列を更新しようとしています。しかし、私はテーブル内の特定のレコードを更新しようとしています。私は、更新ステートメントを使用する必要があることを知っているが、私はSETとUPDATEステートメントのロジックについて混乱している。SQLテーブル内の特定の行を更新しようとしています

基本的には、特定のサイトIDに関連してコメントセクションを更新しようとしています。

UPDATE SQL_TABLE 
SET COMMENTS = "Comment 1" AND "Comment 2" 
WHERE SITE = 2000 , 2001 ; 
+0

'COMMENTS ="コメント1 "とAND"コメント2 "はどういう意味ですか?この後に 'comments'カラムに表示したい値は何ですか?また、文字列リテラルはSQLで単一引用符で囲まれています。二重引用符は識別子用です。 ''コメント1 ''は文字列定数です –

+0

おそらく無関係ですが、どのDBMSを使用していますか? –

+0

'Where SITE = 2000,2002'または' Where in Site(2000,2001) '? – Spidey

答えて

0

一般的に、テーブルの更新はセットで行われるか、個別に1回ずつ呼び出されます。

しかし、もしあなた**これは一つのアプローチである2つの異なる値を持つMUST ***アップデート2つの記録:あなたは、同じクエリに2つのレコードを更新しようとしているように見えます

Update SQL_Table 
set comments = case when site = 2000 then 'Comment 1' 
        when site = 2001 then 'Comment 2' end 
WHERE SITE in (200,2001) 
+0

* Nods *(削除済み – xQbert

0

。これを行うには、あなたがCASE文を必要としている:あなたが誤ってあなたに意味するものではありません、レコードを変更しないように

UPDATE SQL_TABLE 
SET COMMENTS = CASE SITE 
        WHEN 2000 THEN "Comment 1" 
        WHEN 2001 THEN "Comment 2" 
        ELSE COMMENTS 
       END 
WHERE SITE IN (2000 , 2001); 

ELSE文の理由があります。

関連する問題