我正在尝试导入由制表符分隔的csv文件。
这是我的查询
LOAD DATA LOCAL INFILE 'c:/news.csv'
INTO TABLE news
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\r'
(url, storyid, title, date, details, category, author);
只会加载第一列(url)。
其余部分显示NULL
。我已经尝试了\n
终止的行。结果相同。
有什么建议吗?
Table structure for table `news`
--
CREATE TABLE IF NOT EXISTS `news` (
`url` varchar(62) DEFAULT NULL,
`storyid` int(15) DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`date` date DEFAULT NULL,
`details` longtext,
`category` varchar(255) DEFAULT NULL,
`author` varchar(110) DEFAULT NULL
)
答案 0 :(得分:1)
这取决于.csv文件的确切格式,但对于Windows .csv格式,我总是使用
LINES TERMINATED BY '\r\n'
也(再次取决于数据)尝试
FIELDS ESCAPED BY '\\' TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '\"'
如果您不确定数据的确切性质,有时最好以十六进制查看它以查看线路是如何真正终止的。我使用Hexedit - http://www.hexedit.com/
希望这会有所帮助。 德莫特
答案 1 :(得分:0)
就像我在评论中所说,你可以使用' / r / n'换行。
但是,您的csv文件只包含1列,即整行文本。 这可能也是为什么只填充第一个表列而其余为空的原因。
答案 2 :(得分:0)
LOAD DATA LOCAL INFILE 'c:/news.csv'
INTO TABLE news
COLUMNS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(url, storyid, title, date, details, category, author)
这很有用。
原来,即使它看起来与标签分开,也以逗号分隔。 Dermot是对的,您需要以十六进制视图查看它,看看它是如何被真正消除的。