在 MySQL 数据库中,怎样去掉字符串字段值结尾的回车换行符 (\r\n 或 0D 0A)
来源:互联网 发布:java final关键字 编辑:程序博客网 时间:2024/06/05 02:21
碰到的问题:
使用 locate 函数查询 op_phone 表时,没有返回结果,语句如下:
select operator from op_phone where locate(operator,'中国联通');
打开 op_phone 表,可以看到该表中有很多记录的 operator 是“联通”,百思不得其解。
后来用 select 查询第一条联通的记录,然后复制 operator 字段值到 UE 中查看,发现 "联通"两字的后面还有回车换行符:C1 AA CD A8 0D 0A
之所以出现这种情况,是因为 op_phone 表中的记录是从一个文本文件中导入的。
用以下语句检查该字段的长度:
select length(operator) from op_phone limit 0,1;
得到的结果是 5,可见没有把 0A 当作字符串内容的一部分,而是像空格在结尾时一样被当作空白而忽略。
网上有人说:"MYSQL把所有连续的“空白”符当作一个单个的空格。"
--经试验,这句话是错误的:我在"中国移动"中间插入4个空格,select 得到的 length 是 12;
这句话应该改成:"MYSQL把出现在结尾的所有连续的“空白”符当作-0,即并不认为是字符串内容的一部分。"
将回车换行合起来作为一个字符串,在字符串字段中查找,返回是0,找不到:
select locate(char(13,10),operator) from op_phone limit 0,1;
只查找回车,可以找到:
select locate(char(13),operator) from op_phone limit 0,1;
// 返回是3,operator 的值为"联通\r\n"
去掉结尾的回车换行符的语句:
update op_phone set operator=left(operator,locate(char(13),operator)-1);
关于 MySQL 的字符串函数,可以参考以下链接:
http://www.phpv.net/html/1443.html
- 在 MySQL 数据库中,怎样去掉字符串字段值结尾的回车换行符 (\r\n 或 0D 0A)
- mysql 去掉字符串结尾换行的方法
- mysql 去掉字段里的回车换行
- 有一个字符串开头或结尾含有n个空格( a b c d ),欲去掉前后中空格,返回一个新字符串
- Mysql数据库字段中去除回车和换行符
- MySQL 去掉字段中的换行和回车符
- js或Jquery中判断字符串中是否有换行符或回车符/n
- 换行,回车换行 的解释 \r\n \r \n
- python文本处理中\r回车\n换行的问题
- 回车\r 换行\n
- 替换 html中换行符、空格 ;去除字符串中的空格\\s*,回车\n,换行符\r,制表符\t
- 在字符串中输入回车换行或其它特殊字符
- mysql数据库中替换回车换行符
- C++中回车换行(\n\r)和换行(\r)的区别
- C++中回车换行(\n\r)和换行(\r)的区别
- C++中回车换行(\n\r)和换行(\r)的区别
- C++中回车换行(\n\r)和换行(\r)的区别
- C++中回车换行(\n\r)和换行(\r)的区别
- 给xmlhttprequest设置超时限制
- Ubuntu 9.04 Server 搭建Nginx+PHP5+MySQL完美Web服务器
- Android中的几种网络请求方式详解
- ps简单切图步骤图文
- (1451)求一个字符串中连续出现次数最多的子串
- 在 MySQL 数据库中,怎样去掉字符串字段值结尾的回车换行符 (\r\n 或 0D 0A)
- alter tablespace tablespacename begin backup
- 一些有趣的程序员智力面试题
- [应用架构] JAVA应用技术之服务器搭建
- 变量和方法命名的最佳实践
- jxl操作excel,大概的帮助类,Action, Manager
- comobox property
- Debug和Release区别
- 20 个数据库设计最佳实践