Ich habe eine Abfrage, die Daten aus zwei Spalten jeder Zeile in eine Datei exportiert. In der Datei sollten die Daten aus jeder Spalte durch Wagenrücklauf getrennt werden, etwa so:
row1column1
row1column2
row2column1
row2column2
row3column1
row3column2
Ich habe versucht, char (13):
%Vor%und die Ausgabedatei schien vollkommen in Ordnung zu sein (jede Spaltendaten waren in einer anderen Zeile), aber wenn ich sie als Eingabe für ein Programm benutzte, das das beschriebene Format akzeptieren sollte, erkannte es es nicht. Wenn ich jedoch manuell alle Wagenrückläufe in der Datei löschte und sie durch Drücken der "Enter" -Taste erneut hinzufügte, erkannte mein Programm die Datei ohne Probleme. Als ich mit char (13), char (10) versuchte, sah meine Ausgabedatei so aus:
row1column1
\
row1column2
row2column1
\
row2column1
Ich bin mir sicher, dass mir hier etwas offensichtlich fehlt:)
Ich sehe es in Mysql-Site, hoffe, es hilft Ihnen.
Sie sollten die folgende Syntax verwenden, um Erstellen Sie eine CSV-Datei im Format erwartet von Microsoft Excel:
... IN OUTFILE '/temp.csv' FIELDS ESCAPED BY '' '' TERMINIERT VON ',' DURCH "" LINES TERMINATED BY '\ r \ n';
Allerdings Felder mit Wagenrücklauf kann die CSV wie MySQL brechen automatisch ein Feld schließen, wenn der \ r \ n Zeilenumbruch gefunden. Arbeiten Um dies zu ersetzen, ersetzen Sie alle \ r \ n Brüche mit \ n. Das Feld schließt nicht \ n bricht und es wird in a gelesen einzelne Zelle in Excel. Du kannst das in derselben SQL-Anweisung, z Beispiel:
SELECT REPLACE (field_with_line_breaks, '\ r \ n', '\ n') FROM Tabelle IN IN OUTFILE '/temp.csv' FELDS ESCAPED BY '' '' ' TERMINATED BY ',' ENCLOSED BY '' ' LINES TERMINIERT VON '\ r \ n';
Ich habe auch gefunden, dass Null-Werte könnten breche die CSV. Diese können in bearbeitet werden ein ähnlicher Weg:
SELECT IFNULL (mögliches_null_field, "") FROM Tabelle INTO OUTFILE '/temp.csv' FIELDS ESCAPED BY '' '' TERMINATED BY "," ENDGESCHLOSSEN DURCH "" 'LINES TERMINATED DURCH "\ r \ n";
Hinweis: Dies ersetzt NULL-Werte mit eine leere Zeichenfolge, die technisch ist nicht dasselbe, aber es wird geben Sie eine leere Zelle in Excel statt brechen die CSV-Struktur und Verschieben der folgenden Zellen zum links.
Haim Evgis Antwort funktioniert, aber:
%Vor%Ich musste zu:
wechseln %Vor%Es gab ein doppeltes Zitat in den FELDS ESCAPED BY, die diesen Fehler in mysql gab: "Fehler 1083: Feldtrennzeichen Argument ist nicht, was erwartet wird; überprüfen Sie das Handbuch".
Das Ändern in ein einfaches Anführungszeichen hat den Fehler beendet und eine Datei exportiert. Ich konnte es dann erfolgreich in Excel importieren, indem die Zeilenumbrüche korrekt formatiert wurden.
Sie haben wahrscheinlich Probleme mit Unterschieden in der Interpretation von Newline zwischen Betriebssystemen.
Wenn Ihre MySQL-Datenbank unter Unix / Linux läuft und eine Datei unter Unix gelesen wird oder die Datenbank unter Windows läuft und unter Windows gelesen wird, versuchen Sie Folgendes:
%Vor%Wenn Ihre MySQL-Datenbank unter Unix / Linux läuft und eine Datei unter Windows gelesen wird, versuchen Sie Folgendes:
%Vor%Sie können eine Datei auch zwischen "CRLF" (Windows) und "LF" (Unix) Zeilenumbrüchen konvertieren, indem Sie das kleine Befehlszeilenprogramm dos2unix und unix2dos verwenden, das in den meisten Linux-Distributionen enthalten ist.
Tags und Links mysql carriage-return