0
私はCSVを使用してmysqlデータベースにExcelファイルをインポートしようとしています。CSVからインポートされたデータが間違ったmysqlカラムに挿入される
DB構造:CSVの
CREATE TABLE IF NOT EXISTS `sales_products` (
`productID` int(11) NOT NULL auto_increment,
`name` varchar(200) NOT NULL default '',
`categoryID` int(11) NOT NULL default '0',
`brandID` int(11) NOT NULL default '0',
`seriesID` int(11) NOT NULL,
`info` text NOT NULL,
`img` text NOT NULL,
`date_added` date NOT NULL default '0000-00-00',
`price` double NOT NULL default '0',
`special` varchar(200) NOT NULL,
PRIMARY KEY (`productID`),
FULLTEXT KEY `name` (`name`,`info`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='All products' AUTO_INCREMENT=21341 ;
最初の行:私は次の列で、 'LOAD DATAを使用してインポートするCSV' を使用
Bottle opener (No.:015005);1;1;0;Blue, metallic;801001.gif;12-05-2012;0.95
:名前、カテゴリID、brandID、seriesID、情報、 img、date_added、price、special
これはエラーなしで実行されますが、情報フィールドは空白のままです。情報は「img」フィールドに、imgはdate_addedに入れられます。情報フィールドはスキップされます。何故ですか?あなたは、タブ区切りのテキストとしてファイルを保存する場合、私は(これはあなたがスプレッドシートプログラムでそれを修正することができると仮定している)を発見した
コンマが入っていますか?あなたは、mysqlにカンマがフィールドデリミタではないことを伝える必要があります。あるいは、excelをCSVとしてエクスポートするときに文字列の周りにクォートデリミタを使用する必要があります。例えば"Blue、metallic" –
インポートのデフォルトでは、フィールド区切り文字としてセミコロンが使用されます。なぜそれは、フィールドデリミタであると思いますか?また、それはinfoフィールドに 'Blue'を、imgフィールドに 'metallic'を置くので、間違っているとは限りません。 – Dauntless
あなたが別のものを指定していても、デリミタとして扱いますが、わかりませんが、繰り返しテーマです。あなたは引用符を試しましたか? –