Почему я получаю \ N при выполнении запроса INTO OUTFILE?

0

Я подключаюсь к базе данных 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" вместо нулевых ячеек, как должно быть.

Как я могу это исправить?

Теги:

4 ответа

0
Лучший ответ

Ну, ,\n в конце строки представляет нулевое значение в последнем столбце. Так что все в порядке.

1

Строка\N используется для представления нулевого значения. Так что это правильный ответ.

\n полностью отличается, это символ новой строки.

1

Если вы хотите "\" char в строке, вам нужно ввести "\\".

Пример:

System.out.print("The newline char \\n makes a new line: \n");

Итак, в вашем примере ваша последняя строка должна выглядеть следующим образом:

"LINES TERMINATED BY '\\n'";
0

Вы можете использовать MySQL IFNULL: ifnull(fieldname, ''), чтобы избежать этого.

Это приведет к '' вместо NULL, таким образом, вы получите пустые строки в своем выходном файле. Единственная проблема заключается в том, что вам придется указывать его отдельно для каждого столбца.

ПРИМЕЧАНИЕ. "\n" появляется только при открытии с помощью Excel.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню