在我的应用程序中,我通过sql中的“load data local infile”filename命令将csv文件读入DB。如果反斜杠进入其中一个字段,则相邻字段将合并。如何在将文件读入数据库时忽略反斜杠。
实施例,
“abcd”,“efgh”,“ijk”
它转到表格 col1 | col2 | COL3 abcd | efghijk |空
我想要这样做 col1 | col2 | COL3 abcd | efgh | IJK
任何指针都会有所帮助。
谢谢, 阿希什
答案 0 :(得分:2)
默认情况下,LOAD DATA使用\作为转义字符。考虑一下你的意见:
"abcd", "efgh\", "ijk"
该序列\"
被解释为文字非封闭引用,而不是反斜杠后跟引号。
最佳解决方案是在CSV文件中正确转义反斜杠,例如:
"abcd", "efgh\\", "ijk"
如果您不能这样做,可以通过在语句中添加ESCAPED BY ''
来禁用LOAD DATA INFILE语句中的转义。这将阻止它将\识别为转义符,但请记住它也会禁用输入文件中的所有其他转义序列。这也将导入efgh\
,反斜杠不会被忽略。
如果导入efgh\
是不可接受的,那么您必须修复输入文件的格式,或者在应用程序逻辑或其他SQL查询中删除尾随\。
有关文件格式选项的详细信息,请参阅MySQL LOAD DATA INFILE Syntax。
希望有所帮助。