2012-11-26 21 views
7

INFILEコマンドでインポートするときにMySQLが特定の行を無視するようにしようとしています。基本的には、CSVファイルの「ヘッダー」行です。MySQL infileヘッダー行を無視する

LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE INTO TABLE my_db.my_table; 

私はignoreコマンドに見てきたが、それは重複キーを無視するためです。 .txtファイルの特定のエントリ/行を無視する方法はありますか?

答えて

10

IGNORELOAD DATA INFILE文で2つの意味があります。 重複したキーエラーが発生すると、最初は置換/無視されます。 2番目の意味はあなたが探しているものです。完全な文では、あなたは、ランダムな行をスキップすることはできませんが、あなたがこのようなあなたの入力ファイルの先頭にスキップするn行することができますIGNORE n LINES

です:

LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE INTO TABLE my_db.my_table IGNORE 1 LINES; 

これは最初の5行の終わりを無視するだろう行EOLはデフォルトで\nに設定されており、任意の文字に設定することができますLINES TERMINATED BY 'CHR'

+0

だから、5行目を無視するのか、それとも最初の5行を無視するのでしょうか? – Plummer

+0

これは、行末(EOF)がデフォルトで "\ n"で、 'LINES TERMINATED BY 'CHR''を使用して任意の文字に設定できる最初の5行を無視します。 –

+0

非常に有益です。 – Plummer

6

あなたの声明には、このオプションを追加します。

IGNORE 1 LINES 
+0

私はこの答えが好きです。 – caiosm1005

関連する問題