Dit zal doen wat je wilt. Het leest het vierde veld in een lokale variabele en stelt vervolgens de werkelijke veldwaarde in op NULL, als de lokale variabele een lege string bevat:
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,'')
;
Als ze allemaal mogelijk leeg zijn, zou je ze allemaal in variabelen kunnen lezen en meerdere SET-instructies hebben, zoals deze:
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,'')
;