我想更新列值。但是我的Update过程语句甚至更新了此列的值也是相同的。
UPDATE TableName
SET ColumName=@ParameterName
WHERE Id=@ParameterId
任何想法?
谢谢。
答案 0 :(得分:0)
您可以添加其他条件AND (COALESCE(ColumName,'')<>COALESCE(@ParameterName,'')
所以你只是在那些不同的时候进行更新。
UPDATE TableName
SET ColumName=@ParameterName
WHERE (Id=@ParameterId) AND (COALESCE(ColumName,'')<>COALESCE(@ParameterName,''))
我的示例中的coalsece
假定ColumnName
的类型为varchar
,如果是数字值则使用AND (COALESCE(ColumName,0)<>COALESCE(@ParameterName,0)
。
答案 1 :(得分:0)
从我发布的帖子中,您想知道为什么即使没有更改值,MySQL也会更新。好吧,你事先不检查价值是否真的不同,这就是带有ID的更新声明所做的......