您的位置:首页 > 数据库 > MySQL

关于Mysql中正则查询容易出现的错误

2013-08-28 11:16 253 查看
之前给某个部门做了一个管理工具,数据库用的是Mysql。其中有一段查询用到了rlike,也就是regexp。
如果查询条件写成如下,是获取不到正确的查询结果的
name rlike 'd2.7*0.4'


正确的形式应当是:
name rlike 'd2\\.7\\*0\\.4'


这是因为在Mysql中,'.','*',还有'(',')','[',']','?','$','!'等字符都是有特殊含义的,他们需要被转义才能被当作其本身。

在php中,可以使用preg_quote函数对其进行处理
function formatRegexp($str)
{
return mysql_escape_string(preg_quote($str));
}


调用此函数获得的字符串就是正确的查询字符串了。

本文出自 “凡星的技术博客” 博客,请务必保留此出处http://ustb80.blog.51cto.com/6139482/1284113
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: