データベースにcsvをロードするためにmysqlロードデータをインラインで使用しています。私はそれが文字列の周りに二重引用符を追加するデフォルトの動作だが、私はそれをオフにするオプションがあると思っていた。私は、文字列の間にスペースがない場合、つまり車の中にスペースがないことをテストしました。しかし、文字列が私の車であれば、それは "私の車"として表示されます。私はとても多くのことを試みましたが、これらの引用を取り除くことはできません。私は二重引用符をすべての列の周りに追加し、Mysql ESCAPED BY
を使用しましたが、それは動作しませんでした。MySqlロードデータインラインで文字列の前後に二重引用符を追加する
0
A
答えて
0
私はExcelを使用することをお勧めしません。オープンオフィスのCalcが優れているので、CSVをより多くのオプション(およびUTF-8)で保存することができます。
使用前にCSVを保存するときの設定を見てください。 )。
、データベースにCSVを追加するための私のコード:
$dataload = 'LOAD DATA LOCAL INFILE "'.$nomfichier.'"
REPLACE
INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8"
FIELDS TERMINATED BY "\t"
IGNORE 1 LINES
';
あなたはCSVにアクセスして、必要などのように彼を救うことができない場合は、SQLオプションを使用することができます。 Docそして、このラインparticulary:
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string']
]
+1
残念ながら、このインスタンスではこれはうまくいきません。私は自分で作成したLibreOfficeルートとテキストファイルを試しました。以前にインポートされたバージョンのデータにはその問題がなかったため、これも新しい問題です。フィールドに二重引用符がある場合にのみ表示されます。私は現在どのようにそれを取り除くことができるか考えていますが、それはエレガントではありません。 – dengar81
をしてくださいあなたのSQLクエリを書きました。あなたのCSVを保存するときにCSVを変更することをお勧めします。フィールドセパレータの別のオプションを選択してください。 – Xenofexs