php - MySQL 行校验和

标签 php mysql sql database checksum

是否可以选择表格中的整行并获得某种校验和?我正在寻找一种方法来告诉我的代码仅在至少更改了一条记录时才更新数据。从数据更改跟踪的角度来看,它可以帮助我减少历史表中记录的更改数量。

最佳答案

您可以结合 MD5()CONCAT()为该行生成 MD5 校验和的函数:

SELECT MD5(CONCAT(col1, col2, col3, ...)) as MD5_checksum FROM table;

如果其中一列可以为 null,请确保将其包装在 IFNULL(col, '') 中,因为 null 将生成 CONCAT() 的结果> 也为空。

另请注意,这并非 100% 安全。如果您从一列中删除第一个字符并将其添加为下一列的第一个字符,则 CONCAT() 的结果和 MD5 哈希的结果将是相同的。

关于php - MySQL 行校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35196807/

相关文章:

mysql时差查询

mysql - 带有左连接子查询的sql

ios - 附加数据库时出错不是错误的 sqlite 数据库

php - 需要来自 Zend Paginator 对象的动态列信息

php - 亲子关系

mysql - 从其他表中插入选择与乘法

mysql - 即使查询为 NULL,如何返回所有行

java - 右/左外连接 from() 和许多 'and' 与 JOOQ 中的四个表

php - 仅在主页上显示在 Magento 中的 Logo

php - 我如何通过我的应用程序检查谁在线?