2017-05-02 16 views

回答

0

您可以更新所有列,並設置爲空字符串,而不是NULL,如果你不想繼續NULL。

如果你想繼續在DB NULL,然後導出到一個臨時數據庫表,並應用上面的邏輯......

0

您可以使用FIELDS ESCAPED BY條款與SELECT查詢一起,並指定一個空字符串或空白(' ' ),以獲得空值,而不是\N,如:

SELECT * INTO file 
FIELDS ESCAPED BY '' 
LINES TERMINATED BY '\n' 
FROM test_table; 

Here's MySQL的關於它的文件,這就是它說:

如果ESCAPED BY字符字段是空的,沒有字符被轉義 和NULL是作爲NULL輸出,而不是\ n。

3

首先,你需要使用以下查詢來更新列默認值。

ALTER TABLE `table_name` CHANGE `column_name` `column_name` varchar(length) default ''; 

UPDATE `table_name` SET `column_name`='' where `column_name`='/N'; 

願這能幫助你。

+0

''/ N''匹配文字字符串'/ N',而不是'NULL'值。 – Barmar

0

您可以使用結果集元數據。遍歷所有列並檢查空值。

ResultSet rsMain = stmt.executeQuery(selectQuery); 
ResultSetMetaData rsmd = rsMain.getMetaData(); 
while(rsMain.next()){ 
for (int i = 1; i <=rsmd.getColumnCount(); i++) { 
if(rsMain.wasNull()) 
    { 
     sb.append('');// this is the string buffer that writes to the csv 
     sb.append(','); 
     } 
} 
    } 
+0

這是什麼語言?這個問題被標記爲「mysql」。 – Barmar

+0

我假定他正在使用java創建csv文件。你如何創建CSV文件? @khairul alam – NeN

+0

他似乎在使用MySQL的SELECT ... INTO OUTFILE來直接從MySQL創建一個CSV文件。當它將空值輸入到輸出文件中時,它將它們轉義爲'\ N'(在問題中他錯誤地輸入爲「/ N」)。 – Barmar

0

您可以更新這樣的表格:

UPDATE yourTable 
SET col1 = IFNULL(col1, ''), 
    col2 = IFNULL(col2, ''), 
    col3 = IFNULL(col3, ''), 
    ... 

一旦你做到了這一點,你應該改變架構,以便空不允許,默認值是'',所以你不必再次通過這個。

相關問題