Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL carica i valori NULL dai dati CSV

Questo farà quello che vuoi. Legge il quarto campo in una variabile locale, quindi imposta il valore effettivo del campo su NULL, se la variabile locale finisce per contenere una stringa vuota:

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,'')
;

Se sono tutti probabilmente vuoti, li leggeresti tutti in variabili e avresti più istruzioni SET, come questa:

LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(@vone, @vtwo, @vthree, @vfour, @vfive)
SET
one = NULLIF(@vone,''),
two = NULLIF(@vtwo,''),
three = NULLIF(@vthree,''),
four = NULLIF(@vfour,'')
;