2つのデータテーブルをクエリして、それらをcsvファイルに送信してWebサイトにアップロードしようとしています。しかし、ボールをプレイするためのフォーマットを取得するのに問題があります。見出しを列に分けてから、関連データをデータの本文の列に合わせます。
私は現在、目的を達成するのに最も近い-
FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY ''
どちらが戻る-
しかし、あなたは私の問題を見ることができます。 「\」が付いているパーツ番号は間違った列に表示され、データは見出しと一致しません。
ここで、テーブルが毎秒更新されていることを覚えておいてください。データのアップロード方法は制御できません。パーツ番号から「\」を削除できません。
「\」を無視する回避策が必要です。
これを説明するのはかなり難しいです...
TLDR:-画像の大部分の行のように、すべてのデータを整列させる必要があります。「フィールド/行で終了する」パラメータは何ですか?
回答の下部にあるmydata.csvファイルを参照してください。
テーブルxyを作成しました
CREATE TABLE `xy`
(
`fred` int(11) DEFAULT NULL,
`mary` int(11) DEFAULT NULL,
`billy` varchar(50) DEFAULT NULL
);
ドキュメントから here 、私はこれを試しました
LOAD DATA INFILE 'mydata.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
しかし、それは失敗しました(1行だけがインポートされました)。私は\ r\nを\ n(Unix)に変更しました。これはより優れていました(すべての行がインポートされましたが、VARCHARフィールドに\はありません-それらは単に削除されました)。
さらにグーグルで私を導いた here
だから私はこれを試しました(答えから)
LOAD DATA INFILE 'mydata.csv' INTO TABLE xy
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ''
LINES TERMINATED BY '\n';
(注:ESCAPED BY ''-つまり何もない-\はデフォルトのエスケープ文字です)
そしてそれはうまくいきました(下の表xyの4行のサンプル)
| 2 | 3 | asf\dsadfs |
| 2 | 3 | asfdsadfs |
| 2 | 3 | asfdsadfs |
| 2 | 3 | asf\dsadfs |
私のサンプルmydata.csvファイル
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asf\dsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,asf\dsadfs
2,3,asfdsadfs
2,3,asfdsadfs
2,3,a\sfdsadfs
2,3,asfdsadfs
2,3,asfdsadfs