エクセルからエクスポートしたCSVファイルをデータベースにロードしようとしていますが、何をしようとしても正しい書式設定が得られないようです。ここでLOAD DATA INFILEを使用してCSVをインポートする引用符の問題
はSQLです:
LOAD DATA INFILE 'path/file.csv'
INTO TABLE tbl_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
(column1, column2, column3);
は、これが正常に動作しますが、行(列3)の終わりを引用符で終了したとき、私はトラブルに実行します。たとえば:
実際の値:CSVでThese are "quotes"
値:"These are ""quotes"""
何が起こるかというと、それは別の引用に到達するまで、私はデータベースとも任意の追加行にその値に余分な引用符を取得することですCSVでどのようにこれを解決するための任意のアイデアですか?
ありがとうございます!問題は、代わりに 'LINES TERMINATED BY '\ r \ n'''を使う必要があることでした。 – Vanessa
偉大な答え、私はあなたが上記を持っているものを試してみましたが、エラー29(HY000):ファイル '/tmp/data.csv'が見つかりません(Errcode:13)、私もロードデータを追加しようとしました。エラーERROR 1148(42000):使用されているコマンドはこのMySQLバージョンでは許可されていません。5.5.34を使用しています。一時フォルダのアクセス権はdrwxrwxrwtですか? – ak85
@ ak85これは通常、MySQLサーバがそれらのコマンドを実行しているクライアントと同じホストにない場合に発生します。クライアントではなく、データをロードする必要のあるサーバーであることが分かります。したがって、リモートサーバーに接続している場合は、まずデータをサーバーにアップロードしない限り、このようなデータをインポートすることはできません。 – Casper