一個題目引入:
查詢與“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!果斷報錯!
然后想著吧 怎么做參數呢朴上?查了一下發(fā)現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!又是一個大寫的呵呵卒煞。痪宰。
別人參數壓根和你搜索語句沒聯(lián)系!
最后一陣搗騰搞定了:
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,'%')
總結:
- 想要在mysql的like方法中傳參要用concat拼接字符串畔裕,不知道有沒有更好方法求指教衣撬。
- 寫sql語句想辦法把兩張沒有關系的表創(chuàng)造出關系而不是像其他代碼一樣一個“;”結束整個語句!