2009-12-15 3 views
0

Java를 사용하여 MySQL 데이터베이스에 연결 중입니다. 이 쿼리를 실행하고 있습니다 :INTO OUTFILE 쿼리를 실행할 때 get N이 왜 발생합니까?

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이라는 원본 테이블에서 마지막 열에는 null 또는 빈 셀이 있습니다. CSV 파일에서 원래의 테이블 언어 기본 설정에있는 이러한 널 셀이 있던 곳마다 널 셀 대신 "\ N"이 표시됩니다.

어떻게 해결할 수 있습니까?

답변

0

글자 끝에있는 ,\n은 마지막 열의 null 값을 나타냅니다. 그래서 모든 것이 좋습니다.

1

문자열에 '\'char을 사용하려면 '\\'을 입력해야합니다.

예 :

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

그래서 귀하의 예제에서 마지막 줄 읽어야합니다 문자열 \의 N은 null 값을 나타내는 데 사용됩니다

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

. 그래서 그것은 옳은 대답입니다.

\ n은 개행과 완전히 다릅니다.

0

ifnull(fieldname, '')을 사용하면 MySQL IFNULL 기능을 사용할 수 있습니다.

이렇게하면 NULL 대신 ''을 입력하므로 출력 파일에 빈 문자열이 표시됩니다. 유일한 문제는 모든 열에 대해 개별적으로 지정해야한다는 것입니다.

참고 : '\ N'은 Excel로 열 때만 나타납니다.

관련 문제