Heim > Datenbank > MySQL-Tutorial > Wie lade ich NULL-Werte, keine Nullen, mit LOAD DATA INFILE aus einer CSV in MySQL?

Wie lade ich NULL-Werte, keine Nullen, mit LOAD DATA INFILE aus einer CSV in MySQL?

Mary-Kate Olsen
Freigeben: 2024-12-22 07:28:09
Original
797 Leute haben es durchsucht

How to Load NULL Values, Not Zeros, from a CSV into MySQL using LOAD DATA INFILE?

MySQL: NULL-Werte aus CSV-Daten laden

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,'')
;
Nach dem Login kopieren

Erklärung:

  • Die LOAD DATA INFILE-Anweisung liest die Daten aus der CSV-Datei in die Moo-Tabelle.
  • Die FIELDS-Klausel definiert die Felder in der CSV-Datei und ihre entsprechenden Spaltennamen in der Tabelle.
  • Die Das vierte Feld (@vfour) wird in eine lokale Variable statt direkt in die vier Spalte eingelesen.
  • Die SET-Anweisung prüft mithilfe der NULLIF-Funktion, ob die @vfour-Variable leer ist ('').
  • Wenn @vfour leer ist, wird die Spalte vier auf NULL gesetzt; andernfalls behält es seinen ursprünglichen Wert.

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage