我正在尝试使用加载数据本地infile
将csv文件导入mysql数据库我的csv文件如下所示:
1;Lubos;Chrapna;92;muz;Topolcany
2;Branislav;Grecni;28;muz;Topolcianky
3;David;Forgac;57;muz;Hronsky Benadik
4;Imrich;Doci;58;muz;Kosice
表我想把这个cvs文件看起来像这样:
CREATE TABLE IF NOT EXISTS DIM_zakaznik (
id int(5),
meno varchar(15),
priezvisko varchar(15),
vek int(15),
pohlavie varchar(15),
bydlisko varchar(15))
我的查询如下:
load data local infile 'dim_zakaznik.csv' into table DIM_zakaznik
fields terminated by ';'
enclosed by '\n'
lines terminated by '\n';
它工作得很好,当我在phpMyAdmin中查看该表时,一切看起来都不错,但我的问题是,当我尝试运行时选择它忽略最后一列(称为'bydlisko')
例如我试试这个:
SELECT * FROM `dim_zakaznik` WHERE `bydlisko`='Topolcany'
所有它只是说:“MySQL返回一个空结果集(即零行)。(查询花了0.0184秒)”
它不应该是空的结果对吗? 它不仅仅适用于最后一栏,我不知道为什么。 当我在使用这些列之前尝试它时,我添加了另一个列(该列在表中的最后一列),它忽略了其他列(这是表中的最后一列)
我真的很感激一些帮助。提前谢谢!
答案 0 :(得分:0)
请勿在查询中使用“\ n”“部分附带的”,因为 CSV 中的字段不会被“\ n”分隔。尝试删除该部分,然后再次运行查询。
另外,请注意,请确保不截断列数据。最后一列是15个字符长。对于15个字母的单词来说足够了吗? (Varchar需要多一个字节的长度,因此值“Hronsky Benadik”必然会有16个。)
答案 1 :(得分:0)
很旧,但我只是偶然发现了这个,并注意到没有好的答案。 每次我在数据库课程中分配并评分“上传 csv 作业”时,我都会看到这种情况。您的 .csv 文件是什么样的,您没有在此处显示。
如果您显示的这个查询不起作用:
SELECT * FROM `dim_zakaznik` WHERE `bydlisko`='Topolcany'
那我觉得有必要问一下,这个查询有用吗:
SELECT * FROM `dim_zakaznik` WHERE `bydlisko`=' Topolcany'
如果是这样,那么请记住:“空间是给人类使用的”,并相应地调整您的 .csv 文件。 (如果您的表格出现格式问题,检查 LINES TERMINATED BY '\r\n' 也会有所帮助。