目前我手动创建一个字符串,我连接表中每一行的所有值.我正在为每一行散列此字符串以获取该行的当前值(/ status)的哈希值,我稍后将使用该哈希值来确定该行是否已更改.
而不是手动执行此操作,是否有一种内置方式,我的mySQL为每一行获取一个唯一的哈希值?
Mar*_*c B 22
你可以做点什么
SELECT MD5(concat(field1, field2, field3, ...)) AS rowhash
Run Code Online (Sandbox Code Playgroud)
但你无法摆脱列出你想要的字段,因为concat(*)
这不是一个选项(语法错误).
最好使用 concat_ws()。例如两个相邻列: 12,3 => 1,23 。
抱歉,这仍然存在一些问题。想想 null 值、空字符串、字符串可以包含 ',' 等......
需要一个程序来生成哈希语句,该语句应将 null 替换为特定值(对于可以为 null 的列),并使用很少使用的字符/字节作为分隔符。