sql >> Databasteknik >  >> RDS >> Mysql

Ladda data från CSV inuti bitfältet i mysql

Jag har äntligen hittat lösningen och jag lägger upp den här för framtida referens. Jag har hittat hjälp på mysql load data manual page .

Så för teständamål är min tabellstruktur:

+--------+-------------+------+-----+---------+-------+
| 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 är:

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

Frågan för att ladda csv i tabellen är:

 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, ladda csv du måste göra en cast cast(@valore as signed) och i din csv du kan använda heltalsnotationen 1 eller 0 för att ange bit värde. Detta beror på att BIT-värden inte kan laddas med binär notation (till exempel b'011010' ).



  1. Vad är det rekommenderade sättet att ansluta till MySQL från Go?

  2. mysql hämta array

  3. Mysql:Byt data för olika rader

  4. Hur skapar man främmande nyckel i Oracle SQL Developer?