仅当我的查询参数尚未添加时,我才想在我的列中插入一些数据。
例如,如果我的行包含:
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。
但是如果没有存在子句它检查整行,我只想检查参数是否存在,然后不要插入它。
答案 0 :(得分: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 +'%';