2016-04-01 9 views
0

Ich verwende mysql Daten laden inline, um eine CSV in die Datenbank zu laden. Ich weiß, dass es das Standardverhalten ist, doppelte Anführungszeichen um Strings hinzuzufügen, aber ich hatte gehofft, dass es eine Option geben würde, das auszuschalten. Ich testete, dass, wenn eine Schnur keinen Platz dazwischen enthält, z. B. Auto. Wenn die Saite jedoch mein Auto ist, wird es als "mein Auto" angezeigt. Ich habe so viele Dinge ausprobiert, aber ich kann diese Zitate nicht loswerden. Ich fügte doppelte Anführungszeichen um alle Spalten hinzu und verwendete Mysql ESCAPED BY, aber das hat nicht funktioniert.MySql laden Daten inline fügt doppelte Anführungszeichen um Zeichenfolge

+0

Bitte schrieb Ihre SQL-Abfrage. Ich empfehle Ihnen, Ihre CSV zu ändern, wenn Sie ihn speichern, wählen Sie eine andere Option für die Felder Trennzeichen – Xenofexs

Antwort

0

Ich rate Ihnen nicht, Excel zu verwenden. Open Office Calc ist besser, weil er CSV mit mehr Option speichern kann (und in UTF-8)

Schauen Sie auf meine Konfiguration, wenn ich meine CSV-Datei vor der Verwendung laden Daten infile (ich habe kein Büro in Englisch, sry).

enter image description here

Und mein Code für fügen Sie die CSV in der Datenbank:

$dataload = 'LOAD DATA LOCAL INFILE "'.$nomfichier.'" 
         REPLACE 
         INTO TABLE '.$this->csvTable.' CHARACTER SET "utf8" 
         FIELDS TERMINATED BY "\t" 
         IGNORE 1 LINES 
        '; 

Wenn Sie nicht auf die CSV zugreifen und ihn speichern, wie Sie wollen, können Sie die SQL-Option verwenden. Doc Und insbesondere diese Zeilen:

[{FIELDS | COLUMNS} 
     [TERMINATED BY 'string'] 
     [[OPTIONALLY] ENCLOSED BY 'char'] 
     [ESCAPED BY 'char'] 
    ] 
    [LINES 
     [STARTING BY 'string'] 
     [TERMINATED BY 'string'] 
    ] 
+1

Leider funktioniert das in diesem Fall nicht für mich. Ich habe die LibreOffice-Route und die von mir selbst erstellte Textdatei ausprobiert. Dies ist auch ein neues Problem, da eine zuvor importierte Version der Daten dieses Problem nicht hatte. Es scheint nur zu erscheinen, wenn ein doppeltes Anführungszeichen in dem Feld vorhanden ist. Ich denke gerade darüber nach, wie ich es entfernen kann, aber es ist nicht elegant. – dengar81