這篇“oracle/MySQL拼接值遇到的坑及雙豎線||和concat怎么使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“oracle/mysql拼接值遇到的坑及雙豎線||和concat怎么使用”文章吧。
成都創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)公司、成都網(wǎng)站制作、網(wǎng)站營(yíng)銷(xiāo)推廣、網(wǎng)站開(kāi)發(fā)設(shè)計(jì),對(duì)服務(wù)玻璃鋼坐凳等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
“||” 在oracle中是拼接值,但在mysql中是“或”的意思。
where name like '%' || 'Tony' || '%'
所以推薦使用concat()
但concat()也有坑。
mysql中,可以直接用concat拼接3個(gè)值,
concat( '%' , 'Tonny' , '%' )
oracle中,這樣使用是錯(cuò)誤的。因?yàn)閛racle的concat只能拼接2個(gè)值,需要這樣:
concat( '%' , concat('Tonny' , '%') )
缺點(diǎn):只支持兩個(gè)字符串的拼接,超過(guò)兩個(gè)會(huì)報(bào)錯(cuò)(報(bào)的錯(cuò)好像是缺失右括號(hào))
//表中的兩個(gè)字段拼接 select concat(t1.column_1,t1.column_2) from table t1;//任意一個(gè)字段與任意字符串拼接 (time是取的別名,記住:Oracle 取別名不要用as ) select concat('時(shí)間是: ',t1.column_2) time from table t1; select concat(t1.column_1,' 單位:元') time from table t1;//超過(guò)兩個(gè)字段,會(huì)報(bào)錯(cuò)(下面這樣寫(xiě)會(huì)報(bào)錯(cuò)) select concat(t1.column_1,t1.column_2,t1.column_3) from table t1;
在使用CONCAT() 函數(shù)進(jìn)行字符串拼接時(shí),如果拼接的字段(字符串)中有中文,可能會(huì)導(dǎo)致亂碼,解決方法把拼接的字段(字符串)加上 to_char()即可:
//如果遇到亂碼,加上to_char() select concat(to_char(t1.column_1),to_char(t1.column_2)) time from table t1;
使用“||”拼接,就不受限制了
//表中兩個(gè)字符串拼接,取別名為time select t1.column_1 || t1.column_2 time from table t1;//表中三個(gè)字符串拼接,取別名為time //這里可以使用括號(hào)將幾個(gè)要拼接的字段括起來(lái),可讀性會(huì)好點(diǎn),好像加不加括號(hào)都不影響 select (t1.column_1 || t1.column_2 || t1.column_3) time from table t1;
用“||”拼接的好處,在做模糊查詢時(shí),可以利用這個(gè)
//這樣可以動(dòng)態(tài)進(jìn)行模糊查詢,field是動(dòng)態(tài)值 select t1.* from table t1 where t1.name like '%' || field || '%';//如果對(duì)模糊查詢更加細(xì)粒度,當(dāng)然,也可以使用concat()進(jìn)行模糊查詢 select t1.* from table t1 where t1.name like concat('%',field); select t1.* from table t1 where t1.name like concat(field,'%');
業(yè)務(wù)需要,將幾個(gè)字段拼接為一個(gè)字段進(jìn)行查詢,發(fā)現(xiàn)查完了全是空,后來(lái)在網(wǎng)上查詢發(fā)現(xiàn):
使用 || 或者concat拼接字符串,如果其中一個(gè)是null,就變成null
轉(zhuǎn)為使用 concat_ws可以避免
以上就是關(guān)于“oracle/mysql拼接值遇到的坑及雙豎線||和concat怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。