2011-05-23 40 views
1

我有數據的字段被\u0001刪除,記錄被\u0002\n刪除。我想使用LOAD DATA INFILE將所有數據一次導入到MySQL數據庫中。我知道\u0001可以寫成X'01',但我不知道如何編寫`\ u0002 \ n'。MySQL負載數據INFILE帶特殊刪除程序

這是我到目前爲止。

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    FIELDS TERMINATED BY X'01' 
    LINES TERMINATED BY '\n' 
    (col1, col2, col3); 

上面的SQL語句的作品,但我怕\u0002可能與數據一起導入到數據庫中。

我知道\u0002可以寫成X'02',但我不太確定如何將X'02'\n合併。

有什麼建議嗎?

+0

呵呵,我的建議是用你目前的方法,然後在導入完成後替換'\ u00002'(所以,你不必等待完美的解決方案) – ajreal 2011-05-23 03:28:18

+0

這正是我所做的。謝謝 – David 2011-06-02 15:04:41

回答

7

它看起來像你想實現的iTunes EPF :), X'01' + '\n' =>X'020a' 所以你的查詢可以寫成:

LOAD DATA LOCAL INFILE 'myfile.txt' INTO TABLE my_table 
    FIELDS TERMINATED BY X'01' 
    LINES TERMINATED BY X'020a' 
    (col1, col2, col3); 

如果你真的正在實施一個iTunes EPF集成,您可以使用一個查詢:

LOAD DATA LOCAL INFILE '<path to your file>' INTO TABLE `<table name>` CHARACTER SET UTF8MB4 FIELDS TERMINATED BY X'01' LINES TERMINATED BY X'020a' IGNORE 34 LINES; 

如蘋果提供4個字節的UTF8文本數據可以存儲在MySQL只是UTF8MB4字符集(我的意思是到c或者正確移植所有文本記錄)。 前34行將被忽略(應該 - 它是'法律政策'的數據)。 並需要從文件中刪除最後一行。 (我在移植前將其刪除)

希望它可以幫助某人。