我导入了一个带有加载数据的 CSV 文件。一个字段应包含 crc32 值作为其他 3 个字段的哈希值。
例如。加载数据入文件.... (field1,field2,field3,crc) set crc = crc32(concat(field1,field2,field3))到目前为止,这是可行的,但在比较时,我可以看到字段经常包含不同的 CRC32 值,即使根本没有任何变化?为什么 ?我的失败在哪里?
最佳答案
您可以使用虚拟列来直接计算 CRC32。不要忘记列之间的冒号。
示例
a b c crc32
123 4 5
1234 NULL 5
如果之间不使用冒号,则它们是相同的 crc32
CREATE TABLE table1 (
a INT NOT NULL,
b VARCHAR(32),
c INT AS (a mod 10) VIRTUAL,
d VARCHAR(5) AS (CRC32(concat(a,',',b,',',c,)) PERSISTENT);
关于MYSQL 使用 CRC32 和 CONCAT 加载数据 INFILE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34961606/