在csv文件中反斜杠

时间:2013-08-05 17:32:22

标签: java mysql database csv

在我的应用程序中,我通过sql中的“load data local infile”filename命令将csv文件读入DB。如果反斜杠进入其中一个字段,则相邻字段将合并。如何在将文件读入数据库时​​忽略反斜杠。

实施例,

“abcd”,“efgh”,“ijk”

它转到表格 col1 | col2 | COL3 abcd | efghijk |空

我想要这样做 col1 | col2 | COL3 abcd | efgh | IJK

任何指针都会有所帮助。

谢谢, 阿希什

1 个答案:

答案 0 :(得分:2)

默认情况下,LOAD DATA使用\作为转义字符。考虑一下你的意见:

"abcd", "efgh\", "ijk"

该序列\"被解释为文字非封闭引用,而不是反斜杠后跟引号。

最佳解决方案是在CSV文件中正确转义反斜杠,例如:

"abcd", "efgh\\", "ijk"

如果您不能这样做,可以通过在语句中添加ESCAPED BY ''来禁用LOAD DATA INFILE语句中的转义。这将阻止它将\识别为转义符,但请记住它也会禁用输入文件中的所有其他转义序列。这也将导入efgh\,反斜杠不会被忽略。

如果导入efgh\是不可接受的,那么您必须修复输入文件的格式,或者在应用程序逻辑或其他SQL查询中删除尾随\。

有关文件格式选项的详细信息,请参阅MySQL LOAD DATA INFILE Syntax

希望有所帮助。