Mysql
 sql >> Base de données >  >> RDS >> Mysql

Charger les données du CSV dans le champ de bits dans mysql

J'ai enfin trouvé la solution et je la poste ici pour référence future. J'ai trouvé de l'aide dans la page du manuel mysql load data .

Donc, à des fins de test, la structure de ma table est :

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

Mon csv le fichier de test est :

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

La requête pour charger le csv dans le tableau est :

 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;

Comme vous pouvez le voir, chargez le csv vous devez faire un casting cast(@valore as signed) et dans votre csv vous pouvez utiliser la notation entière 1 ou 0 pour indiquer le bit évaluer. En effet, les valeurs BIT ne peuvent pas être chargées à l'aide de la notation binaire (par exemple, b'011010' ).