簡體   English   中英

為什么執行INTO OUTFILE查詢時得到\\ N?

[英]Why do I get \N when executing INTO OUTFILE query?

我正在使用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的原始表中,最后一列具有一些null或空單元格。 在CSV文件中,無論原始表格語言偏好中的這些空單元格在哪里,我都會得到“ \\ N”而不是應該的空單元格。

我該如何糾正?

如果要在字符串中使用'\\'字符,則需要輸入'\\\\'。

例:

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

因此,在您的示例中,最后一行應為:

"LINES TERMINATED BY '\\n'";

字符串\\ N用於表示空值。 因此,這是正確的答案。

\\ n完全不同,那就是換行符。

嗯,在行尾的,\\n代表最后一列中的空值。 所以一切都很好。

您可以使用MySQL IFNULL函數: ifnull(fieldname, '')避免這種情況。

這將放置''而不是NULL,因此您將在輸出文件中得到空字符串。 唯一的問題是,您必須為每個列分別指定它。

注意:“ \\ N”似乎僅在使用Excel打開時出現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM