在 MySQL 中,您不需要检查该值。如果没有变化,MySQL 不会更新记录。这意味着 MySQL 不会产生记录或写入数据的开销。检查是否有任何值发生变化会产生轻微的成本,并且我认为它确实会运行触发器。
其他数据库的行为有所不同。
这是在文档中一个神秘的位置,其中mysql_affected_rows()
描述:
对于 UPDATE 语句,affected-rows 值默认是实际更改的行数。
。。。
大于零的整数表示受影响或检索的行数。零表示 UPDATE 语句没有更新任何记录、没有与查询中的 WHERE 子句匹配的行或者尚未执行任何查询。