MYSQL中使用LIKE进行字符串连接失效
2015-04-15 14:09
489 查看
参考资料:MYSQL-中文检索匹配与正则表达式
上面的语句直接这样执行,可以发挥like的通配符的作用,但是如果将这个语句置于存储过程中就会失效;导致语句成这样的效果:
而非我想要的匹配两位字符;使用正则表达式也不行,因为正则表达式太花俏,太复杂,导致筛选出3个字符的或者是其中一个字符匹配的结果。
原本想放弃改为在代码上代替SQL的缺陷;后面参考前面给的那个文章,因为看到当那篇文章的实例也是用like+变量值匹配值,他是这样写的:
重点是看到的是CONCAT函数,这个函数时字符串连接函数。
原来like匹配的失效可能是在MYSQL中,字符串的连接不能通过简单的‘+’来连接,应该考函数来连接,如cancat函数。
SELECT menu_id,menu_captions FROM bsdb.menulist a WHERE a.menu_id LIKE (menuid+'_');
上面的语句直接这样执行,可以发挥like的通配符的作用,但是如果将这个语句置于存储过程中就会失效;导致语句成这样的效果:
SELECT menu_id,menu_captions FROM bsdb.menulist a WHERE a.menu_id LIKE menuid;
而非我想要的匹配两位字符;使用正则表达式也不行,因为正则表达式太花俏,太复杂,导致筛选出3个字符的或者是其中一个字符匹配的结果。
原本想放弃改为在代码上代替SQL的缺陷;后面参考前面给的那个文章,因为看到当那篇文章的实例也是用like+变量值匹配值,他是这样写的:
select id,title,name from achech_com.news where binary ucase(title) like concat('%',ucase('a'),'%')
重点是看到的是CONCAT函数,这个函数时字符串连接函数。
原来like匹配的失效可能是在MYSQL中,字符串的连接不能通过简单的‘+’来连接,应该考函数来连接,如cancat函数。
相关文章推荐
- 为MySQL Connector Net连接MySQL使用正确的连接字符串
- 为MySQL Connector Net连接MySQL使用正确的连接字符串
- [导入]为MySQL Connector Net连接MySQL使用正确的连接字符串
- 为MySQL Connector Net连接MySQL使用正确的连接字符串
- MySQL连接8小时未使用连接失效的处理方法
- 使用mysql截取、连接字符串
- VC使用mysql.h的接口头文件进行连接mysql数据库开发的完整解决方案
- Mysql中使用like进行模糊查询反斜线等符号转义处理
- 字符串连接效率测试:stringbuilder》stringbuffer》+ 【转:尽量使用StringBuilder和StringBuffer进行字符串连接】
- .net 使用管道方式访问mySQL的连接字符串
- 使用MySQL内置函数将IP地址字符串转为无符号整数进行存取
- Mysql中使用UNION语句进行多表连接查询
- mysql使用参数化查询,like模糊查询,应如何拼接字符串
- 使用R进行数据可视化套路之-多重散点图、连接Mysql获取数据
- Java中尽量使用StringBuilder和StringBuffer进行字符串连接
- ictclas分词系统的使用,java调用,附带连接mysql进行读写。
- java使用JDBC连接mysql并且进行批量增删改操作
- 使用MySql自带的库进行数据库连接时可能产生的一些问题
- Mysql中使用UNION语句进行多表连接查询
- myBatis 操作 mysql时,使用 like 关键进行模糊查询的方法