use*_*762 0 sql postgresql count sql-update
我尝试一次又一次更新具有相同值的特定记录,但它始终将受影响的行值返回为1.
update users set active = 1 where id = 304
1 row(s) affected.
Run Code Online (Sandbox Code Playgroud)
再次相同的查询
update users set active = 1 where id = 304
1 row(s) affected.
Run Code Online (Sandbox Code Playgroud)
但第二次更新应该返回0行受影响对吗?我可以知道如果不更新记录,我怎么能得到零计数.
无条件地设置列的值总是"影响"它,即使新值与旧值相同.如果您只想查看该值是否现在不同,您可以检查受类似情况影响的行数
UPDATE users SET active=1 WHERE id = 304 AND active != 1;
Run Code Online (Sandbox Code Playgroud)
这样,更新查询只匹配尚未"活动"的行