问题是这样的:
表persons有两个字段:id和name
文本文档persons.txt中内容(其中每行字段之间用tab分割):
1 Bush
2 Carter
3 Bush
在mysql命令行下使用loaddatalocalinfile“persons.txt”intotablepersons导入数据到persons表中。
导入后查看persons表的数据,与persons.txt的内容一致。但是使用语句
selectdistinctnamefrompersons
查询,结果中Bush出现了两次(正常结果应该是Bush只出现一次)。
原因分析:
经过分析,发现原因是windows下换行符为”rn”,而mysql在loaddata时默认使用”n”来切割每行记录,导致插入到表中前两条记录的name字段末尾多插入了不可见字符”r”;也就是说使用distinct关键字查询出来的两个Bush中,第一个词尾有回车符”r”,而第二个词尾没有。
说明:
1.mysql默认使用tab来分割每行的字段。
2.因为linux下换行符为”n”,所以在linux下不会出现上述问题。
修改方法:
只要在导入数据时指定以”rn”来换行就可以了。
修改后的导入数据语句为:
代码如下:
loaddatalocalinfile“persons.txt”intotablepersons
linesterminatedby“rn”;
您可能感兴趣的文章:Java利用MYSQLLOADDATALOCALINFILE实现大批量导入数据到MySQLMySQL中由loaddata语句引起死锁的解决案例MySQL中使用loaddata命令实现数据导入的方法mysqlloaddatainfile的用法(40w数据用了3-5秒导进mysql)mysql中的Loaddata的使用方法mysql的loaddatainfilemysqlLoadDataInFile的用法mysql遇到loaddata导入文件数据出现1290错误的解决方案
mysql中使用sphinx搜索子域名需注意的问题
Sphinx/MySQL 协议支持与SphinxQL应用实例
上述就是数据库技术:mysql中Load Data记录换行问题的解决方法分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/dtteaching/910573.html