MYSQL中使用LIKE进行字符串连接失效

参考资料:MYSQL-中文检索匹配与正则表达式 

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函数。

 

转载于:https://www.cnblogs.com/ufindme/p/4428390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值