sql >> Databasteknik >  >> RDS >> Mysql

MySQL laddar NULL-värden från CSV-data

Detta kommer att göra vad du vill. Den läser in det fjärde fältet till en lokal variabel och ställer sedan in det faktiska fältvärdet till NULL, om den lokala variabeln kommer att innehålla en tom sträng:

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

Om de alla möjligen är tomma, skulle du läsa in dem alla i variabler och ha flera SET-satser, så här:

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


  1. Hur skapar jag en dynamisk WHERE-sats?

  2. Hur man får poster från de senaste 30 dagarna

  3. Minnesgränser i SQL Server 2016 SP1

  4. Så här grupperar du efter månad från datumfältet med sql