【问题标题】:MYSQL LOAD DATA INFILE with CRC32 and CONCAT使用 CRC32 和 CONCAT 的 MYSQL LOAD DATA INFILE
【发布时间】:2016-04-29 22:23:18
【问题描述】:

我导入了一个带有加载数据文件的 CSV。一个字段应包含 crc32 值作为其他 3 个的哈希值。

例如。加载数据文件.... (field1,field2,field3,crc) 设置 crc = crc32(concat(field1,field2,field3))

到目前为止,这很有效,但是在比较时我可以看到通常字段包含不同的 CRC32 值,即使根本没有变化?为什么 ?我的失败在哪里?

【问题讨论】:

  • 还是不行。我尝试了以下(字段类型哈希是 char32 无符号)我的两个表的更新语法“更新 export1 set crc = md5(concat(column1,',',column2,',',column3))" 并且在其他表中相同但是使用 crc32 时 md5 也不同 ...

标签: mysql concat load-data-infile crc32


【解决方案1】:

你可以使用一个虚拟列来直接计算你的 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);

【讨论】:

    猜你喜欢
    • 2012-06-01
    • 2012-10-05
    • 2010-11-17
    • 1970-01-01
    • 2020-07-25
    • 2017-07-21
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多