关于mysql中的like语句带参数问题

一个题目引入:
查询与“B1100”银行在同一城市(假设银行名称的第5和第6个字符为城市名称)的其他的银行的名称。
表结构:
table bankt

数据:
data bankt

这里首先有一个问题,如何获取第五个和第六个字符。采用mysql的substr方法。

SUBSTR(str FROM pos FOR len)  
//str为字符串对象,pos为开始位置(mysql索引从1开始),length表示截取的长度  

所以获取代码为

SELECT SUBSTR( bname FROM 5 FOR 2) as city from bankt WHERE bno = 'B1100'  

然后就是怎么把参数传给like搜索,第一想法是:

CONCAT(str1,str2,...)  

呵呵哒,too young too simple!果断报错!

然后想着吧 怎么做参数呢?查了一下发现mysql字符串必须由方法拼接

<li class="alt"><span><span>CONCAT(str1,str2,...)  </span></span></li>

那就改吧..

(SELECT SUBSTR( bname FROM 5 FOR 2) as city from bankt WHERE bno = 'B1100') ,  
 SELECT bname from bankt WHERE bname LIKE CONCAT('%',city,'%')  

naive!又是一个大写的呵呵。。
别人参数压根和你搜索语句没联系!
最后一阵捣腾搞定了:

SELECT a.bname from   
(SELECT SUBSTR( bname FROM 5 FOR 2) as city from bankt WHERE bno = 'B1100') A,bankt a  
 WHERE a.bname LIKE CONCAT('%',city,'%')  

总结:

  1. 想要在mysql的like方法中传参要用concat拼接字符串,不知道有没有更好方法求指教。
  2. 写sql语句想办法把两张没有关系的表创造出关系而不是像其他代码一样一个“;”结束整个语句!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,275评论 0 4
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,762评论 0 4
  • 首先在此感谢下我的老师-老男孩专家拥有16年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的真传,所...
    meng_philip123阅读 4,521评论 4 109
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,068评论 0 19
  • 20天日记!写写我的一日三好打卡 我在生活群里面看到生活家们,都超级棒和正能量的老师们大爱讲课分享!虽然我一直潜伏...
    做个内心的自我阅读 265评论 2 0