2016-07-29 61 views
0

只有當我的查詢參數尚未添加時,我想在列中插入一些數據。插入數據(如果不存在)

例如,如果我的行包含:

a=4&b=7&c=9 

和現在,當更新發生與:B = 7 & C = 9,然後我不應該追加它。

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

但是,如果更新d發生= 9 & E = 9 那麼它應該追加它。

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 

如何使用這裏的NOT EXIST 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 +'%';