2017-07-06 2 views
0

可能であれば、この2つのクエリを組み合わせてデータベースアクセスを最適化したいと考えています。異なるセットとwhere句を持つ2つの更新クエリを結合するにはどうすればよいですか?

この2つのステートメントをどのように組み合わせるか?

update tbl_priority SET a=1 where j='j1' and priority='1'; 
update tbl_priority SET g=1 where j='j1'; 

ご意見、ご提案は高く評価されます。

+1

あなたは常にGを更新し、時々更新されてみ?私は2つ以上のステップでこれを行うことの価値を理解しようとしています。 – theo

答えて

3

WHERE句のロジックが一致しないため、これらの2つの更新ステートメントを組み合わせるのはきれいではありません。しかし、我々はWHERE句に共通する条件j = 'j1'を保持することができ、その後、a assignement処理するためにCASE次の式を使用します。私たちが割り当てCASE表現の枝を持っているので、これは理想的ではないことを

UPDATE tbl_priority 
SET a = CASE WHEN priority = '1' THEN 1 ELSE a END, 
    g = 1 
WHERE j = 'j1' 

注意をaを返します。これだけでは、特定のレコードが変更されたとして表示されるべきではありません。

+0

ありがとうございました。 – jasim

1

update tbl_priority SET g=1, a = CASE WHEN priority='1' THEN 1 ELSE a END 
where j='j1' ; 
+0

ありがとうございます:) – jasim

関連する問題