我使用Java连接到MySQL数据库。我正在执行此查询:
String query =
"SELECT * FROM TT2 " +
"INNER JOIN " +
"`Language Pref` " +
"ON tt2.msisdn = `language pref`.MDN " +
"INTO OUTFILE 'c:/test12226.csv' " +
"FIELDS TERMINATED BY ',' " +
"ENCLOSED BY '\"' " +
"LINES TERMINATED BY '\n'";
我正在使用executeQuery(query)执行此查询。
除最后一列外,生成的CSV文件是完美的。在名为Language Pref
的原始表中,最后一列包含一些空单元格或空单元格。在CSV文件中,只要原始表语言pref中存在这些空单元格,我就会得到“\ N”而不是空单元格。
我该如何纠正?
答案 0 :(得分:1)
如果你想在字符串中使用'\'字符,则需要输入'\\'。
示例:
System.out.print("The newline char \\n makes a new line: \n");
因此,在您的示例中,您的最后一行应为:
"LINES TERMINATED BY '\\n'";
答案 1 :(得分:1)
字符串\ N用于表示空值。所以这是正确的答案。
\ n完全不同,这是换行符。
答案 2 :(得分:0)
嗯,行末尾的,\n
表示最后一列中的空值。所以一切都很好。
答案 3 :(得分:0)
您可以使用MySQL IFNULL功能:
ifnull(fieldname, '')
要避免这种情况。
这将使''
而不是NULL,因此您将在输出文件中获得空字符串。唯一的问题是您必须为每个列单独指定它。
注意:' \ N'似乎只有在用Excel打开时才会出现。