2016-07-29 21 views
0

クエリパラメータがまだ追加されていない場合にのみ、データを自分の列に挿入します。存在しない場合はデータを挿入してください

a=4&b=7&c=9 

を、現在、更新がで発生したとき:

は、例えば、私の行が含まれている場合B = 7 & C = 9、私はそれを追加してはなりません。

o/p:a=4&b=7&c=9 

しかし、更新は= 9 D = 9 & Eで発生した場合、それはそれを追加する必要があります。

o/p : a=4&b=7&c=9&d=9&e=9 

私の通常の更新クエリは次のとおりです。

@AdditionalParams = 'b=7&c=9' 
SELECT @id = mid FROM Table2 WHERE sid = @SId 
       AND cid = @CId; 

      UPDATE Table1 
      SET additional_params = CONCAT (
        additional_params 
        ,iif(additional_params IS NULL, NULL, '&') 
        ,@AdditionalParams 
        ) 
      WHERE mid = @id 

は、どのように私はClasue存在しませここで使用することができます。

しかし、存在しない句では、行全体をチェックするだけで、パラメータが存在するかどうかを確認してから、挿入しないでください。

+5

を探していると思います – Lamak

答えて

1

私はあなたがデータを格納するために、かなりひどい方法です好きではない句

declare @AdditionalParams varchar(50) = 'b=7&c=8' 
SELECT @id = mid 
    FROM Table2 
    WHERE sid = @SId 
    AND cid = @CId; 

    UPDATE Table1 
    SET additional_params = CONCAT (
        additional_params 
        ,iif(additional_params IS NULL, NULL, '&') 
        ,@AdditionalParams 
        ) 
    WHERE mid = @id 
    and additional_params not like '%'+ @AdditionalParams +'%'; 
関連する問題