本文主要介绍MySQL数据中很多换行符和回车的解决方法。通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。下面让我们跟随边肖一起学习。
目录
发现的问题:1。如何去掉换行符和回车;2.如何在SELECT for查询中忽略“换行符和回车符”;3.经验总结。
发现问题
今天一大早,客户打电话给我:“陈骁,昨天晚上,我将几十万条数据导入数据库,然后很多数据在web界面中找不到了。你的系统到底做了什么?这么多虫子!玩得开心……”(省略2000字)又习惯性地喷了一遍我们项目做的辣子鸡~ ~
来,顾客随便喷,我就来一份早餐吧~嗯,真的很饱;
我到公司后,先测试了客户给我的错误例子(找不到了),然后查了昨天的数据,看有没有问题。我发现昨天客户用excel导入的数据中有很多\ r \这种换行符和回车。
比如数据库中的数据是“newline \n newline \n newline”,然后在界面中通过下面的SQL查询也找不到!
SELECT * from ` lol ` where name=' newline newline newline ';
换行符:CHAR(10)='\n '
回车:CHAR(13)='\r '
在mysql中,回车和换行符都是字符的类型。当它们被放入varchar时,它们不会显示在navcat等插件上。需要和MySQL终端中的navcat进行对比才能看到(坑~)
导航插件如下所示:
MySQL终端显示如下:
(回车\r也导致数据结果直接返回,只显示一部分。MySQL,我来告诉你你有多厉害。)
MySQL select * from‘lol’;
- - - -
| id |英雄头衔|英雄姓名|价格|
- - - -
| 1 | D刃影|泰龙| 6300 |
| 2 | X Swift Scouts | Teemo | 6300 |
| 8 |换行
换行符
换行|换行| 450 |
回车|回车| 450 |
- - - -
集合中有4行(0.00秒)
1、如何去掉换行符、回车符
如果条件允许,建议直接通过语句删除换行符和回车符,如下所示:
移除“hero_title”列中的所有换行符(可以通过以下两种方式完成)
-删除“hero_title”列中的所有换行符(可以通过以下两种方式完成)
更新` lol ` set hero _ title=REPLACE(hero _ title,' \n ',' ');
更新` lol ` set hero _ title=REPLACE(hero _ title,char(10),' ');
删除“hero_title”列中的所有回车符(可以通过以下两种方式完成)
-删除“hero_title”列中的所有回车符
更新` lol ` set hero _ title=REPLACE(hero _ title,' \r ',' ');
更新` lol ` set hero _ title=REPLACE(hero _ title,char(13),' ');
2、SELECT如何忽略"换行符、回车符"进行查询
如果条件不允许,比如客户“激动”了,对你大喊:你不能动数据库里的数据!…我笑了~
那我该怎么办?可以通过修改SQL过滤掉换行符和回车,但是会在一定程度上影响查询效率,而且要改很多代码,你懂的。
记住鲁迅老师说的:哪里有压迫,哪里就有反抗!
例子如下:
-忽略换行查询。
select * from ` lol ` where replace(hero _ title,char (10),' ')=' newline newline newline newline ';
-忽略回车查询
select * from ` lol ` where replace(hero _ title,char (13),' ')='回车回车回车回车';
-忽略换行符回车查询。
select * from ` lol ` where replace(replace(hero _ title,char (13),''),char (10),' ')='回车回车回车回车';
3、经验总结
类似的符号一般要求入库时清理干净。如果一定要保留,也建议用其他自定义logo(比如一个自己创建的唯一logo,我称之为大眼小眼:o_O)替换,在后台程序中替换,以免影响索引效率。
好了,希望这篇文章能帮到你。也许你可以做个标记,等你同事遇到这个问题的时候,扔到她脸上~
关于MySQL数据中很多换行符和回车的解决方法的这篇文章就到此为止。有关MySQL换行符和回车符的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。