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

MySQL indlæser NULL-værdier fra CSV-data

Dette vil gøre, hvad du vil. Den læser det fjerde felt ind i en lokal variabel og sætter derefter den faktiske feltværdi til NULL, hvis den lokale variabel ender med at indeholde en tom streng:

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

Hvis de alle muligvis er tomme, så ville du læse dem alle i variabler og have flere SET-sætninger, som denne:

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. Flask efter eksempel – Opsætning af Postgres, SQLAlchemy og Alembic

  2. SQLcl-formateringsindstillinger (Oracle)

  3. MySQL prøvedatabase

  4. Kan jeg bruge en PDO-forberedt sætning til at binde en identifikator (et tabel- eller feltnavn) eller et syntaksnøgleord?