是否可以选择表格中的整行并获得某种校验和?我正在寻找一种方法来告诉我的代码仅在至少更改了一条记录时才更新数据。从数据更改跟踪的角度来看,它可以帮助我减少历史表中记录的更改数量。
最佳答案
您可以结合 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/