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

Indlæs data fra CSV inde i bitfeltet i mysql

Jeg har endelig fundet løsningen, og jeg poster den her til fremtidig reference. Jeg har fundet hjælp på mysql-indlæsningsdatamanualsiden .

Så til testformål er min tabelstruktur:

+--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | id | int(11) | NO | PRI | NULL | | | nome | varchar(45) | YES | | NULL | | | valore | bit(1) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+

Min csv testfilen er:

1,primo_valore,1
2,secondo_valore,0
3,terzo_valore,1
 

Forespørgslen om at indlæse csv i tabellen er:

 load data infile 'test.csv' into table test
    fields terminated by ',' lines terminated by '\n'
    (id, nome, @valore) set
       valore=cast(@valore as signed);
    show warnings;
 

Som du kan se, skal du indlæse csv du skal lave en cast cast(@valore as signed) og i din csv du kan bruge heltalsnotationen 1 eller 0 for at angive bit værdi. Dette skyldes, at BIT-værdier ikke kan indlæses ved hjælp af binær notation (f.eks. b'011010' ).



  1. SQL Server:kombination af flere rækker til en række

  2. venstre join med tomme rækker fra højre tabel mysql

  3. opret en mysql-post, hvis den ikke eksisterer, ellers opdater den

  4. Mac OS X + Python + Django + MySQL