mysql中Load Data记录换行问题的解决方法

2013-10-23  来源:本站原创  分类:Mysql  人气:7 

有关mysql中Load Data记录换行的问题的解决方法, 需要的朋友可以参考下

问题是这样的:

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

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

load data local infile “persons.txt” into table persons
lines terminated by “\r\n”;
相关文章
  • mysql中Load Data记录换行问题的解决方法 2013-10-23

    有关mysql中Load Data记录换行的问题的解决方法, 需要的朋友可以参考下 问题是这样的: 表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.tx

  • Mysql中load data infile的使用 2014-06-12

    LOAD DATA INFILE语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'string'] [[OPTIONALLY] ENCLOSED BY 'char'] [ESCAPED BY 'char' ] ] [LINES [STARTING BY 'string'] [TE

  • MySQL中使用load data命令实现数据导入的方法 2014-07-26

    MySQL支持load data命令的数据导入,该方式比直接的insert的效率要高,按照官方的说法是要比insert语句快上20倍 使用方式如下: mysql>load data local infile "D:/ab.txt" into table mytbl(name,age); 使用上述的命令就可以将D:/ab.txt文件的内容导入到表mytbl中,其中name和age是表mytbl的字段,对应ab.txt文件中每行的数据.如果编译安装mysql时没有指定 ?enable

  • 查询mysql中执行效率低的sql语句的方法 2014-04-23

    查询mysql中执行效率低的sql语句的方法,需要的朋友可以参考一下 一些小技巧 1. 如何查出效率低的语句? 在MySQL下,在启动参数中设置 --log-slow-queries=[文件名],就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为10秒)的SQL语句.你也可以在启动配置文件中修改long query的时间,如: # Set long query time to 8 seconds long_query_time=8 2. 如何查询某表的索引? 可使用S

  • mysql中优化sql语句查询的30种方法(转) 2013-01-09

    mysql中优化sql语句查询的30种方法: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,

  • MySQL中字段名和保留字冲突的解决办法 2013-10-16

    这篇文章主要介绍了MySQL中字段名和保留字冲突的解决办法,其实只需要用撇号把字段名括起来就可以了,这样在select.insert.update.delete语句中都不会有问题,需要的朋友可以参考下 我们知道通常的SQL查询语句是这么写的: select col from table; 这当然没问题,但如果字段名是"from"呢? 复制代码 代码如下: select from from table; 若真的这么写,必然出错,当字段名与MySQL保留字冲突时,可以用字符"`&

  • MySQL密码正确却无法本地登录的解决方法 2013-11-20

    这篇文章主要介绍了MySQL密码正确却无法本地登录的解决方法,需要的朋友可以参考下 MySQL root密码正确,却怎么也无法从本地登录MySQL,提示 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 这里后来经高人指点才发现mysql库中的user表缺少一个root指向host:localhost的数据项,只有一个root指向host:主机名的数据项,故怎么也无法利用root

  • Mysql 导入导出csv 中文乱码问题的解决方法 2013-12-02

    这篇文章介绍了Mysql 导入导出csv 中文乱码问题的解决方法,有需要的朋友可以参考一下 导入csv: load data infile '/test.csv' into table table_name fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n' ignore 1 lines; 导csv: 复制代码 代码如下: SELECT * INTO

  • nginx服务器access日志中大量400 bad request错误的解决方法 2014-02-22

    这篇文章主要介绍了nginx服务器access日志中大量400 bad request错误的解决方法,本文结论是空主机头导致的大量400错误日志,关闭默认主机的日志记录就可以解决问题,需要的朋友可以参考下 在access.log中有大量400错误,并以每天几百M的速度增加,占用大量空间. tail -f /opt/nginx/logs/access.log 116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] "-" 400 0 "

  • window.location.href中url中数据量太大时的解决方法 2014-05-19

    这篇文章主要为大家介绍下window.location.href中url中数据量太大时的解决方法,需要的朋友可以参考下 先说一下今天遇到的问题 一个导出excel的处理,在按钮按下后需要传很大一个数据到后台,刚开始的做法如下: var actionUrlSetData = "****Action!exportDatas.action"+ "?now=" + new Date().getTime(); window.location.href= actionUrl +

  • PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 2014-06-05

    这篇文章主要介绍了PHP开发中常见的安全问题详解和解决方法,详细介绍了例如Sql注入.CSRF.Xss.CC等攻击手段的背景知识以及解决方法,需要的朋友可以参考下 浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF 前言: 首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记.细心总结文章,里面有些是我们phper不易发现或者说不重视的东西.所以笔者写下来方便以后查阅.在大公司肯定有专门的web安全测试员,安全方面不是phper考虑的范围.但是作为一个p

  • mysql误删root用户或者忘记root密码解决方法 2014-06-21

    mysql误删root用户或者忘记root密码解决方法,需要的朋友可以参考下. 解决方法一: 到其他安装了Mysql的服务器(前提是要知道该服务器上Mysql的root用户密码),打开[Mysql的安装目录/var/mysql],将其中的user.frm.user.MYD.user.MYI三个文件拷贝到出问题服务器的[Mysql的安装目录/var/mysql]目录中.然后重启服务器. 解决方法二: 修改你的my.ini或my.cnf文件,在 [mysqld] 节下加入下面一行 skip-gran

  • IE6-IE9中tbody的innerHTML不能赋值的解决方法 2015-03-09

    这篇文章主要介绍了IE6-IE9中tbody的innerHTML不能赋值的解决方法,需要的朋友可以参考下 IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </head> <bod

  • PHP编译安装中遇到的两个错误和解决方法 2015-05-01

    这篇文章主要介绍了PHP编译安装中遇到的两个错误和解决方法,环境是CentOS 64位下编译安装PHP5.4.8,需要的朋友可以参考下 一.PHP configure: error: Cannot find ldap libraries in /usr/lib 今天在CentOS 64位下编译安装PHP5.4.8.结果在configure的时候提示 configure: error: Cannot find ldap libraries in /usr/lib 提示在/usr/lib 下找不到相

  • IE中鼠标经过option触发mouseout的解决方法 2013-11-13

    这篇文章主要介绍了IE中鼠标经过option触发mouseout的解决方法,分析了IE中鼠标移到option时window.event.toElement返回值为null的原因及解决方法,需要的朋友可以参考下 本文实例讲述了IE中鼠标经过option触发mouseout的解决方法.分享给大家供大家参考.具体分析如下: 要实现的功能: 有一个DIV,当鼠标经过时此DIV完全展开,当鼠标移开时DIV收缩回去,其中DIV里面有一个select选择框: 操作select的时候在IE中会出现一个问题,当鼠

  • Codeigniter中mkdir创建目录遇到权限问题和解决方法 2013-11-25

    这篇文章主要介绍了Codeigniter中mkdir创建目录遇到权限问题和解决方法,需要的朋友可以参考下 今天在用 Codeigniter 上传文件时(部署在 Centos),提示如下错误: A problem was encountered while attempting to move the uploaded file to the final destination. 相关代码: //目录检测 if (!is_dir($cache_path)) mkdir($cache_path, '

  • JQuery中使用ajax传输超大数据的解决方法 2013-12-30

    这篇文章主要介绍了JQuery中使用ajax传输超大数据的解决方法,也就是比较多的数据,超过max_upload_size等设置,本文方法在chrome浏览器下测试通过,需要的朋友可以参考下 直接说问题,在一个页面用了Jquery(1.6)的Ajax请求,用的post,传递显示的数组有500多条.php端却只能接受到50条左右.刚开始以为是web服务器设置的问题,把,max_upload_size这类的都改了.但是没有效果,后来尝试用max_input_vars这个是新玩艺,刚开始还有点作用.后

  • Java中典型的内存泄露问题和解决方法 2014-01-18

    这篇文章主要介绍了Java中典型的内存泄露问题和解决方法,典型的内存泄露例子是一个没有实现hasCode和 equals方法的Key类在HashMap中保存的情况,可以通过实现Key类的equals和hasCode方法解决这种内存泄漏问题,需要的朋友可以参考下 Q:在Java中怎么可以产生内存泄露?A:Java中,造成内存泄露的原因有很多种.典型的例子是一个没有实现hasCode和 equals方法的Key类在HashMap中保存的情况.最后会生成很多重复的对象.所有的内存泄露 最后都会抛出Ou

  • 基于WTL中使用双缓冲避免闪烁的解决方法 2014-01-25

    本篇文章是对WTL中使用双缓冲避免闪烁的解决方法进行了详细的分析介绍,需要的朋友参考下 在自己画的窗口中,有时候会有闪烁现象.为什么会有闪烁现象呢?其实是因为程序在画窗口时需要用背景色清空显示区域,然后再画.由于这两者的反差比较大,就会被人眼睛捕捉到,感觉闪烁. 双缓冲就是先在内存中把图画好,然后直接复制到屏幕上去,这样的反差就比较小,也就不觉得闪烁了. WTL中的CDoubleBufferImplWTL中有现成的双缓冲类实现,可以很方便的使用就达到效果. CDoubleBufferImpl 在

  • PHP中file_exists()判断中文文件名无效的解决方法 2014-01-29

    这篇文章主要介绍了PHP中file_exists()判断中文文件名无效的解决方法,是很多PHP开发人员都会遇到的问题,主要涉及对编码的转换,需要的朋友可以参考下 本文实例讲述了PHP中file_exists()判断中文文件名无效的解决方法.分享给大家供大家参考.具体方法如下: php中判断文件是否存在我们会使用file_exists函数或is_file函数,但在使用file_exists时如果你文件名或路径是中文在uft8编码文档时是无效.本文就来解决此问题,下面我们一起来看看. 定义和用法:f