即使值相同,Mysql Update Statement也会更新

时间:2014-07-22 06:13:39

标签: sql sql-update insert-update

我想更新列值。但是我的Update过程语句甚至更新了此列的值也是相同的。

UPDATE TableName 
SET   ColumName=@ParameterName   
WHERE Id=@ParameterId

任何想法?

谢谢。

2 个答案:

答案 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的更新声明所做的......