数据库教程:mysql中Load Data记录换行问题的解决方法分享

问题是这样的:
表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 方法 sq

mysql中使用sphinx搜索子域名需注意的问题

Sphinx/MySQL 协议支持与SphinxQL应用实例

上述就是数据库技术:mysql中Load Data记录换行问题的解决方法分享的全部内容,如果对大家有所用处且需要了解更多关于mysql数据库学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/910573.html

(0)
上一篇 2021年10月24日
下一篇 2021年10月24日

精彩推荐