PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 数据库 > MySQL教程 > 正文

    有关mysql中Load Data记录换行的问题

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:问题是这样的:表persons有两个字段: id和name文本文档persons.txt中内容(其中每行字段之间用tab分割):1 Bush2 Carter3 Bush在mysql...

    问题是这样的:
    表persons有两个字段: id和name
    文本文档persons.txt中内容(其中每行字段之间用tab分割):
    1    Bush
    2    Carter
    3    Bush
    在mysql命令行下使用 load data local infile “persons.txt” into table persons 导入数据到persons表中。
    导入后查看persons表的数据,与persons.txt的内容一致。但是使用语句
    select distinct name from persons
    查询,结果中Bush出现了两次(正常结果应该是Bush只出现一次)。

    原因分析:
    经过分析,发现原因是windows下换行符为"rn",而mysql在load data时默认使用"n"来切割每行记录,导致插入到表中前两条记录的name字段末尾多插入了不可见字符"r";也就是说使用distinct关键字查询出来的两个Bush中,第一个词尾有回车符"r”,而第二个词尾没有。
    说明:
    1. mysql默认使用tab来分割每行的字段。
    2. 因为linux下换行符为"n",所以在linux下不会出现上述问题。

    修改方法:
    只要在导入数据时指定以"rn"来换行就可以了。
    修改后的导入数据语句为:
     

    load data local infile “persons.txt” into table persons
    lines terminated by “rn”;
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-35-3798-1.html
    相关热词搜索: