是否可以选择表中的整行并获得某种校验和?我正在寻找一种方法,告诉我的代码仅在更改了至少一条记录后才更新数据。从数据更改跟踪的角度来看,这将有助于我减少历史记录表中记录的许多更改。- 谢谢。
您可以结合使用MD5()和CONCAT()函数来为该行生成MD5校验和:
MD5()
CONCAT()
SELECT MD5(CONCAT(col1, col2, col3, ...)) as MD5_checksum FROM table;
如果其中一列是可为空的,请确保将其包装在中IFNULL(col, ''),因为null会使结果CONCAT()也为null。
IFNULL(col, '')
另请注意,这不是100%安全的。如果从一列中删除1个字符并将其添加为下一列的第一个字符CONCAT(),则MD5哈希的结果将相同。