mysql版本5.6.7,基于windows。问题1,导入的中文文本中,第一个字段值以“?”开头。例如,t.txt文件内容是:测试1
测试2
测试3
...使用命令:load data infile 't.txt' into table t(names);
然后select * from t;结果显示:?测试1
测试2
测试3
...这个问号是怎么回事呢?如何去除?
问题2,指定字段从文本导入的话,是否此时就不能使用“ignore lines”选项呢?
例如,使用load data .....into table (names) ignore 1 lines则报错;
而使用:load data .......into table ignore 1lines 则命令能够执行成功。

解决方案 »

  1.   

    问题2
    load data .......into table ignore 1lines(names); 列名写在最后即可
      

  2.   

    检查你的文本文件格式是不是UTF格式的,转存为ANSI的就可以了。
      

  3.   

    问题2解决本来是ansi格式的,但load data报错: Incorrect string value: '\xC9\xCF\xBA\xA3\xC8\xCB...'......
    所以转成了utf8格式的。
      

  4.   

    另外还发现一个问题:若插入多次的话,自增字段值不是顺序增加的:
    例如,文本文件共有三行;第一次执行load data命令后,select显示:
    1,测试1
    2,测试2
    3,测试3执行第二次相同的load data命令后,select显示为:
    1,测试1
    2,测试2
    3,测试3
    7,测试1
    8,测试2
    9,测试3其中1,2,3,7,8,9是int类型的字段,且设置了auto_increment;
    问题是:为何第二次执行load data后,id不是从4开始的?而是从7开始的?