用MySQL函数清除字符串首尾空白字符的方法

 更新时间:2011年03月31日 00:45:14   转载 作者:  
由于内容插入的时候没办法进行完全的过滤,所以审核这里就经常出问题,搞的头大,而MySQL的trim函数没办法去掉回车和换行,只能去掉多余的空格
问题:短信息审核的时候,会根据内容来进行判断,比如a内容可以通过,b内容不能通过,则MySQL中表现为 msg = a,msg = b,可是如果msg字段的内容中包含回车换行等空白字符(最常见的是内容开头和末尾出现换行),则比对就不成功,造成短信息审核不成功。

由于内容插入的时候没办法进行完全的过滤,所以审核这里就经常出问题,搞的头大,而MySQL的trim函数没办法去掉回车和换行,只能去掉多余的空格,今天研究了一下MySQL的函数,replace函数,终于解决掉了这个问题,具体解决办法如下:

假设想要审核数据库中内容为“我爱你
”的短信息(注意内容后有换行)通过(status改变成1)

之前的SQL语句是不起作用的
复制代码 代码如下:

UPDATE `tran`
SET `status` = '1'
WHERE `msg` = '我爱你';

修改之后的语句

复制代码 代码如下:

UPDATE `tran`
SET `status` = '1'
WHERE trim( replace( `msg`, '\r\n', ' ' ) ) = '我爱你';

把数据中的回车换行等替换成空格之后再trim掉,就达到目的了,虽然不是特别完美,但是由于没办法在用户录入的时候控制,所以只能出此下策,好在MySQL内置函数的效率还是很有保证的。

更新(15:50):
复制代码 代码如下:

UPDATE `tran`
SET `status` = '1'
WHERE trim( trim(
BOTH '\r\n'
FROM content ) ) = '我爱你'

用了两个trim,这样的好处是不会替换内容中间的换行和回车,只会处理头尾的空格换行回车,相当于php中trim函数的作用了。

附:replace 用法
1.replace into
复制代码 代码如下:

replace into table (id,name) values('1','a'),('2','b');

此语句的作用是向表table中插入两条记录。

2.replace(object, search,replace)
把object中出现search的全部替换为replace
select replace('www.qq.com', 'q', 'Y');
上例输出结果 www.YY.com

注:trim和replace函数详细的用法请查看MySQL手册。
作者:跃龙杂记

相关文章

  • MySQL日期函数与日期转换格式化函数大全

    MySQL日期函数与日期转换格式化函数大全

    Mysql作为一款开元的免费关系型数据库,用户基础非常庞大,本文列出了MYSQL常用日期函数与日期转换格式化函数
    2018-03-03
  • Linux下mysql的root密码修改方法

    Linux下mysql的root密码修改方法

    mysql是我们经常在linux或者windows需要用的一种数据库,相信每位程序员们对mysql应该都再熟悉不过了,但是有时大脑短路,突然忘记mysql的超级用户root的密码,这个时候就要修改个新的密码了,下面这篇文章就介绍了Linux下mysql的root密码修改方法,一起来看看吧。
    2017-03-03
  • 解析远程连接管理其他机器上的MYSQL数据库

    解析远程连接管理其他机器上的MYSQL数据库

    本篇文章是对远程连接管理其他机器上的MYSQL数据库进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Mysql Binlog数据查看的方法详解

    Mysql Binlog数据查看的方法详解

    这篇文章主要介绍了Mysql Binlog数据查看的方法详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • MySQL Hash索引和B-Tree索引的区别

    MySQL Hash索引和B-Tree索引的区别

    MySQL Hash索引和B-Tree索引的区别究竟在哪里呢?相信很多人都有这样的疑问,下文对两者的区别进行了详细的分析,需要的朋友可以参考下
    2014-03-03
  • 重装MySQL最后一步失败的完美解决方案(经验总结)

    重装MySQL最后一步失败的完美解决方案(经验总结)

    使用MySQL都有过重装的经历,要是重装MySQL基本都是在最后一步通不过,究竟是什么原因呢?下面是我总结的一点经验,都是血的教训
    2014-06-06
  • MySQL 5.6 中 TIMESTAMP有那些变化

    MySQL 5.6 中 TIMESTAMP有那些变化

    前段时间,系统MySQL从5.5升级到了5.6,系统出现了大量的异常。大部分异常引起原因是由于TIMESTAMP的行为发生了变化,下面通过此篇文章给大家详解MySQL 5.6 中 TIMESTAMP有那些变化,需要的朋友可以参考下
    2015-08-08
  • MySQL分区字段列有必要再单独建索引吗?

    MySQL分区字段列有必要再单独建索引吗?

    这篇文章主要给大家介绍了关于MySQL分区字段列是否有必要再单独建索引的相关资料,文中通过示例进行了验证,对大家的理解和学习具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-10-10
  • MySQL字段自增自减的SQL语句示例介绍

    MySQL字段自增自减的SQL语句示例介绍

    MySQL的自增语句大家应该都很熟悉,本文为大家介绍下MySQL字段自增自减的SQL语句,需要的朋友可以参考下
    2014-02-02
  • MySQL中因字段字符集不同导致索引不能命中的解决方法

    MySQL中因字段字符集不同导致索引不能命中的解决方法

    这篇文章主要给大家介绍了关于MySQL中因字段字符集不同导致索引不能命中的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09

最新评论