Problem:
Beim Laden von Daten aus einer CSV-Datei mit leeren Feldern Wenn Sie mit dem Befehl LOAD DATA INFILE eine MySQL-Tabelle hinzufügen, weist MySQL leeren Feldern 0 anstelle von NULL zu, selbst wenn die Spalte mit NULL definiert ist Standardwert.
Lösung:
Um NULL-Werte für leere Felder korrekt zu laden, lesen Sie das problematische Feld in eine lokale Variable ein und setzen Sie dann den tatsächlichen Feldwert bedingt auf NULL wenn die Variable ist leer:
LOAD DATA INFILE '/tmp/testdata.txt' INTO TABLE moo FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" (one, two, three, @vfour, five) SET four = NULLIF(@vfour,'') ;
Erklärung:
Zusätzlicher Hinweis:
Wenn möglicherweise alle Felder leer sein können, lesen Sie sie alle in lokale Variablen ein und verwenden Sie mehrere SET-Anweisungen zur bedingten Zuweisung von NULL-Werten.
Das obige ist der detaillierte Inhalt vonWie lade ich NULL-Werte, keine Nullen, mit LOAD DATA INFILE aus einer CSV in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!