Я подключаюсь к базе данных MySQL с использованием Java. Я выполняю этот запрос:
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 файле, где бы ни были эти нулевые ячейки в исходном префиксе табличного языка, я получаю "\n" вместо нулевых ячеек, как должно быть.
Как я могу это исправить?
Ну, ,\n
в конце строки представляет нулевое значение в последнем столбце. Так что все в порядке.
Строка\N используется для представления нулевого значения. Так что это правильный ответ.
\n полностью отличается, это символ новой строки.
Если вы хотите "\" char в строке, вам нужно ввести "\\".
Пример:
System.out.print("The newline char \\n makes a new line: \n");
Итак, в вашем примере ваша последняя строка должна выглядеть следующим образом:
"LINES TERMINATED BY '\\n'";
Вы можете использовать MySQL IFNULL:
ifnull(fieldname, '')
, чтобы избежать этого.
Это приведет к ''
вместо NULL, таким образом, вы получите пустые строки в своем выходном файле. Единственная проблема заключается в том, что вам придется указывать его отдельно для каждого столбца.
ПРИМЕЧАНИЕ. "\n" появляется только при открытии с помощью Excel.