1

我的数据具有由 分隔的字段和由 分隔的\u0001记录\u0002\n。我想使用LOAD DATA INFILE一次将所有数据导入 MySQL 数据库。我知道\u0001可以写成X'01',但我不知道怎么写 `\u0002\n'。

这就是我到目前为止所拥有的。

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    FIELDS TERMINATED BY X'01'
    LINES TERMINATED BY '\n'
    (col1, col2, col3);

上面的 SQL 语句有效,但我担心它\u0002可能会与数据一起导入数据库。

我知道\u0002可以写成,X'02'但我不太确定如何X'02'\n.

有什么建议么?

4

1 回答 1

8

看起来您正在尝试实现 iTunes EPF :), X'01'+ '\n'=> X'020a' 所以您的查询可以写成:

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    FIELDS TERMINATED BY X'01'
    LINES TERMINATED BY X'020a'
    (col1, col2, col3);

如果您真的在实现 iTunes EPF 集成,您可以使用下一个查询:

LOAD DATA LOCAL INFILE '<path to your file>' INTO TABLE `<table name>` CHARACTER SET UTF8MB4 FIELDS TERMINATED BY X'01' LINES TERMINATED BY X'020a' IGNORE 34 LINES;

例如苹果提供 4 字节 UTF8 的文本数据,只需使用 UTF8MB4 字符集就可以存储在 MySQL 中(我的意思是更正所有文本记录的端口)。前 34 行将被忽略(应该 - 它是“法律政策”数据)。并且需要从文件中删除最后一行。(我在移植前用脚本将其删除)

希望它可以帮助某人。

于 2013-02-03T14:28:50.713 回答