带有特殊分隔符的MySQL LOAD DATA INFILE

Dav*_*vid 1 mysql delimiter load-data-infile number-with-delimiter

我的数据包含已删除的字段\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);
Run Code Online (Sandbox Code Playgroud)

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

我知道这\u0002可以写成X'02'但我不太确定如何X'02'与之结合\n.

有什么建议?

iMy*_*sak 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);
Run Code Online (Sandbox Code Playgroud)

如果您真的在实施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;
Run Code Online (Sandbox Code Playgroud)

比如苹果提供4字节UTF8的文本数据,它可以用UTF8MB4字符集存储在MySQL中(我的意思是纠正端口的所有文本记录).前34行将被忽略(应该忽略 - 它是'合法政策'数据).并需要从文件中删除最后一行.(我在移植之前用脚本删除它)

希望它可以帮助某人.