目录
1、直接将带有很长字符串的某列的xlsx格式表格通过导入到mysql中。
2、去掉带有很长字符串的列,再导入xlsx格式文件到mysql中。
3、将xlsx格式文件li另存为txt格式,再导入到mysql中。
4、先将xlsx格式文件另存为csv格式,再导入到mysql中。
一、准备阶段
首先测试以下导入方式(均使用load data方法):
1、直接将带有很长字符串的某列的xlsx格式表格通过导入到mysql中。
结果:不仅出现乱码,而且还出现会多出很多行的情况,这是因为包含了很长字符串的行会自动换行。导致行数虚增,这种方式导入不靠谱,或者说先要解决掉这个很长字符串的列。
2、去掉带有很长字符串的列,再导入xlsx格式文件到mysql中。
结果:会有乱码,并且行数较少,明显少于需求行,与python导入出现的情况类似。也不适合。
3、将xlsx格式文件li另存为txt格式,再导入到mysql中。
结果:可行,不缺行。
4、先将xlsx格式文件另存为csv格式,再导入到mysql中。
结果:可行,不缺行,完美,更倾向于这种方式。
二、相关配置
1、查看某个表格字段格式:
show create table test1;
修改这个字段为gbk格式:
alter table test1 default character set gbk;
2、查看字符设置char的变量:
show variables like 'char%';
修改为gbk:
set character_set_database =gbk;
3、查看sql_mode是否有限制:
show variables like '%sql_mode%';
如果有STRICT_TRANS_TABLES,这个表示超过长度就报错,可以去掉这个设置:
set SESSION sql_mode='';
4、查看某个表的行数:
select count(*) from test1;
注意,count(*)是连在一起的,不要分开。
三、load data
load data infile 'E:\\XSH\\MySQL\\Jan.csv'
into table test1
fields terminated by ','
ignore 1 lines
(交易订单号,实收金额,商品小计,商品编码,商品名称);
注意:导入乱码有可能是character_set_database和数据库的表的字段的格式不匹配,需要相同的数据格式,可以用front修改表内字段的格式为gbk。
如有疑问,欢迎探讨!