Überspringen von Spalten beim CSV-Import in eine MySQL-Tabelle
Das Importieren von Daten aus einer CSV-Datei in eine MySQL-Tabelle ist eine häufige Aufgabe. Allerdings kann es manchmal vorkommen, dass Sie bestimmte Spalten überspringen müssen. Dieser Artikel bietet eine Lösung, um die unerwünschten Spalten zu überspringen und die verbleibenden Daten korrekt zuzuordnen.
Szenario
Betrachten Sie eine CSV-Datei mit 11 Spalten und eine MySQL-Tabelle mit 9 Spalten . Das Ziel besteht darin, die Spalten 1–8 aus der CSV-Datei direkt den ersten 8 Spalten der MySQL-Tabelle zuzuordnen. Die Spalten 9 und 10 in der CSV-Datei müssen übersprungen werden und Spalte 11 sollte Spalte 9 in der MySQL-Tabelle zugeordnet werden.
Originalbefehl
Der anfängliche SQL Der verwendete Befehl, der unten gezeigt wird, ordnet einfach die ersten 9 Spalten der CSV-Datei den 9 Spalten in der MySQL-Tabelle zu.
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n'
Lösung
Zu Wenn Sie Spalten während des Imports überspringen möchten, können Sie eine in der MySQL-Dokumentation beschriebene Technik verwenden. Indem Sie die unerwünschten Spalten in der LOAD DATA-Anweisung Benutzervariablen zuweisen, können Sie sie effektiv verwerfen. Der folgende modifizierte Befehl demonstriert diese Technik:
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (column1, @dummy, column2, @dummy, column3, column4, column5, column6, column7, column8, @dummy, @dummy, column11)
In diesem verbesserten Befehl werden die unerwünschten Spalten (9 und 10) der Benutzervariablen @dummy zugewiesen und während des Importvorgangs verworfen. Dadurch werden die übrigen Spalten wie gewünscht korrekt zugeordnet: Die Spalten 1–8 aus der CSV-Datei werden den ersten 8 Spalten der MySQL-Tabelle zugeordnet, während Spalte 11 der Spalte 9 der MySQL-Tabelle zugeordnet wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Spalten während eines CSV-Imports in eine MySQL-Tabelle überspringen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!