Überspringen von Spalten bei CSV-Importen in MySQL
Beim Importieren einer CSV-Datei in eine MySQL-Tabelle mit dem Befehl LOAD DATA INFILE kommt es häufig dazu Es kommt zu einem Szenario, in dem die Anzahl der Spalten in der CSV-Datei von der Anzahl der Spalten in der Zieltabelle abweicht. In solchen Fällen ist das Überspringen bestimmter Spalten erforderlich.
Problem:
Angenommen, Sie haben eine CSV-Datei mit 11 Spalten und eine MySQL-Tabelle mit nur 9 Spalten. Sie möchten die Spalten 1–8 der CSV-Datei direkt den Spalten 1–8 der Tabelle zuordnen, aber die nächsten beiden Spalten überspringen und Spalte 11 der CSV-Datei der Spalte 9 der Tabelle zuordnen.
Lösung:
Um Spalten während des Importvorgangs zu überspringen, können Sie die Funktion von MySQL nutzen, Benutzervariablen Werte zuzuweisen, ohne sie in Tabellenspalten einzufügen. Dies wird erreicht, indem die übersprungenen Spalten Benutzervariablen zugewiesen werden und deren Werte praktisch ignoriert werden.
Hier ist der modifizierte SQL-Befehl, der die gewünschte Zuordnung durchführt:
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (column1, @dummy1, column2, @dummy2, column3, column4, column5, column6, column7, column8, @dummy3, column9);
In diesem modifizierten Befehl werden zwei Benutzer Variablen (@dummy1 und @dummy2) werden verwendet, um die Werte der neunten bzw. zehnten Spalte in der CSV-Datei zu erfassen, diese Werte werden jedoch keiner Tabellenspalte zugewiesen. Dadurch werden sie effektiv übersprungen, sodass Spalte 11 der CSV-Datei korrekt Spalte 9 der Tabelle zugeordnet werden kann.
Das obige ist der detaillierte Inhalt vonWie überspringe ich Spalten beim CSV-Import in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!