MYSQL 使用 CRC32 和 CONCAT 加载数据 INFILE

标签 mysql concatenation load-data-infile crc32

我导入了一个带有加载数据的 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/

相关文章:

list - Dart 列表中的 addAll() 与 followBy() 有什么区别?

php - 无法加载数据文件工作

mysql - 使用 LOAD DATA INFILE 忽略时间戳中的特定逗号?

mysql - 执行 'LOAD DATA LOCAL INFILE 时发生异常

python - 如何获取多个动态文本文件的内容并将其存储在一个文本文件和mysql中 - Python 2.7?

javascript - 返回 'Range' 而不是 Google Apps 脚本中的实际字符串

Java:如何根据输入引用类变量?

mysql - 组织 MySQL 数据库

mysql - 需要帮助 复杂的 MySQL 多查询语句

php - Doctrine - ManyToOne 与表之间