Laden mit fester Breite, Leerzeichen getrennt .txt Datei in mySQL
Habe ich eine .txt-Datei, die eine Reihe von formatierten Daten, die wie folgt aussieht:
...
1 75175.18 95128.46
1 790890.89 795829.16
1 875975.98 880914.25
8 2137704.37 2162195.53
8 2167267.27 2375275.28
10 2375408.74 2763997.33
14 2764264.26 2804437.77
15 2804504.50 2881981.98
16 2882048.72 2887921.25
16 2993093.09 2998031.36
19 3004104.10 3008041.37
...
Ich versuche zu laden, wird jede Zeile wie ein Eintrag in eine Tabelle in meine Datenbank, wo jede Spalte ist ein anderes Feld. Ich habe Probleme damit, mySQL zu trennen, alle Daten korrekt. Ich denke das Problem kommt von der Tatsache, dass nicht alle zahlen sind getrennt durch eine äquidistante white-space-Betrag.
Hier sind zwei Abfragen, die ich bisher ausprobiert habe (ich habe auch versucht, mehrere Varianten dieser Abfragen):
LOAD DATA LOCAL INFILE
'/some/Path/segmentation.txt'
INTO TABLE clip (slideNum, startTime, endTime)
SET presID = 1;
LOAD DATA LOCAL INFILE
'/some/Path/segmentation.txt'
INTO TABLE clip
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'
(slideNum, startTime, endTime)
SET presID = 1;
Irgendwelche Ideen, wie diese zu arbeiten?
Beachten Sie auch, die einzigen Leerzeichen am Anfang jeder Zeile.
InformationsquelleAutor bddicken | 2012-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese sind das, was wir als "Feste Breite" - Datensätze und LADEN von DATEN spielt nicht gut mit Ihnen. Optionen:
SUBSTR()
undTRIM()
slice die Spalten, die Sie brauchen, um in die endgültige Tabelle.In der Regel sollten Sie diese durch Kommas, Semikola, Tabulatoren oder pipes ('|') zum trennen der Felder in text-Dateien (CSV = comma-separated values ist die am häufigsten verwendete format). LADEN Sie dann die DATEN können Sie leicht zu handhaben.
Wow, option 3 (und die Abfrage, ging zusammen mit ihm) hat einwandfrei funktioniert , vielen Dank!
InformationsquelleAutor J. Miller
InformationsquelleAutor user2106410