关于Mysql中正则查询容易出现的错误
2013-08-28 11:16
253 查看
之前给某个部门做了一个管理工具,数据库用的是Mysql。其中有一段查询用到了rlike,也就是regexp。
如果查询条件写成如下,是获取不到正确的查询结果的
正确的形式应当是:
这是因为在Mysql中,'.','*',还有'(',')','[',']','?','$','!'等字符都是有特殊含义的,他们需要被转义才能被当作其本身。
在php中,可以使用preg_quote函数对其进行处理
调用此函数获得的字符串就是正确的查询字符串了。
本文出自 “凡星的技术博客” 博客,请务必保留此出处http://ustb80.blog.51cto.com/6139482/1284113
如果查询条件写成如下,是获取不到正确的查询结果的
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
相关文章推荐
- 关于mySQL带参数的查询出现错误的解决方案
- 关于MySql登录出现错误代码 1045 Access denied for user 'root'@'localhost' (using password:YES)
- hibernate+mysql 分页查询出现错误
- Mysql查询大表出现的一个错误
- 关于mysql 出现 1264 Out of range value for column 错误的解决办法
- 关于mysql出现java.sql.SQLException错误!
- 关于在乌班图中出现Authenticaton is required to "mysql_server"输入密码总是错误解决
- 关于mysql双机热备份中出现111号错误,error connecting to master
- Mysql5.7.20使用group by查询(select *)时出现错误--修改sql mode
- S2SH集成,数据库使用mysql,查询的时候出现字符集的错误
- 关于mysql 5.7 版本登录时出现错误 1045的随笔
- 关于连接myEclipse连接mysql时出现 Table 'performance_schema.session_variables' doesn't exist错误解决方法
- 关于mysql 出现 1264 Out of range value for column 错误的解决办法
- 正则非贪婪匹配 及 容易出现的错误
- MySql出现错误:ERROR 1055 (42000) 和 MYSQL的WARNINGS 和 ERRORS查询细节
- 关于MySql安装后出现error:0错误,我的解决方法
- Mysql从UNION ALL查询结果集中查询对应列出现错误"Every derived table must have its own alias"
- 关于kettle 与mysql 连接后 出现错误的问题
- 关于出现“使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式”错误的可能原因