gpt4 book ai didi

mysql - 将十六进制/二进制数据导入mysql

转载 作者:可可西里 更新时间:2023-11-01 06:27:57 24 4
gpt4 key购买 nike

我需要将一组具有一个字段作为 blob 的大数据导入 mysql 服务器 (5.5)。按照 SELECT INTO OUTFILE 和 LOAD DATA INFILE 的示例,它 [几乎] 工作正常。但是,我遇到了一个问题:BLOB 文件中生成的数据实际上是二进制表示形式。生成的文件如下所示(第 3 列代表 BLOB 文件):

1,1,"4Vÿ"2,1,"ª»Ì"3,1,"Ýîÿ"4,1,"\"3"

对于这种情况,使用以下 sql 语句导入工作正常:

LOAD DATA INFILE 'C:/temp/mysql/mysqldump.1.txt'INTO TABLE `test_table`  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\r\n';

我的问题是文本是这样偶然生成的。如果出现引号、换行符或其他任何内容,我将需要手动进行转义(即用反斜杠字符替换它们),我想跳过这一步。

所以,我的问题是:有什么方法可以导入具有以下格式的文本文件(BLOB 存储为 hexa):

1, 1, 0x123456FF2, 1, 0xaabbcc3, 1, 0xddeeff4, 1, 0x112233

只用一条 mysql 语句?

更新: 忘了说了 - 试图直接用 LOAD DATA INFILE 语句导入所需格式的文本文件,结果实际上是将文本 '0x123456FF' 存储在表。

最佳答案

你可以使用 LOAD DATA INFILE 的 SET 部分,你不需要 0x 转义的东西:

1, 1, 123456FF
2, 1, aabbcc
3, 1, ddeeff

然后将该列分配给一个变量,然后将该列设置为该变量的 UNHEXed 版本:

LOAD DATA INFILE 'file' INTO TABLE `table` (column1, column2, @var1)
SET column3 = UNHEX(@var1)

关于mysql - 将十六进制/二进制数据导入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com